Created
August 18, 2017 08:34
-
-
Save UweRaabe/d2a9baa0fde542131d33d10f34cd2471 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
type | |
TVariantArr = record | |
private | |
{ implementation may differ } | |
Data: Variant; | |
Arr: TArray<Variant>; | |
function GetItems(Index: Integer): Variant; | |
procedure SetItems(Index: Integer; const Value: Variant); | |
public | |
class operator Implicit(A: TVariantArr): Variant; overload; | |
class operator Implicit(A: Variant): TVariantArr; overload; | |
property Items[Index: Integer]: Variant read GetItems write SetItems; default; | |
end; | |
type | |
ISome = interface | |
function GetValue: TVariantArr; stdcall; | |
procedure SetValue(const Value: TVariantArr); stdcall; | |
property Value: TVariantArr read GetValue write SetValue; | |
end; | |
function TVariantArr.GetItems(Index: Integer): Variant; | |
begin | |
Result := Arr[Index]; | |
end; | |
procedure TVariantArr.SetItems(Index: Integer; const Value: Variant); | |
begin | |
Arr[Index] := Value; | |
end; | |
class operator TVariantArr.Implicit(A: TVariantArr): Variant; | |
begin | |
Result := A.Data; | |
end; | |
class operator TVariantArr.Implicit(A: Variant): TVariantArr; | |
begin | |
Result.Data := A; | |
end; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment