Below I am providing two examples of converting a dynamic array of some data to a variant. In first example array holds Integers
, in second example array holds TMyEnums
.
I would think that both examples are pretty simmilar, however, the second example returns an error "Invalid variant type conversion" during runtime.
program Project128;
{$APPTYPE CONSOLE}
uses
SysUtils, Variants;
type
TIntegerArray = array of Integer;
type
TMyEnum = (meOne, meTwo, meFour, meTen);
TMyEnumArray = array of TMyEnum;
var
LVar1, LVar2: Variant;
LIntArray : TIntegerArray;
LMyEnumArray: TMyEnumArray;
begin
SetLength(LIntArray, 2);
DynArrayToVariant(LVar1, LIntArray, TypeInfo(TIntegerArray)); //Works
SetLength(LMyEnumArray, 2);
DynArrayToVariant(LVar2, LMyEnumArray, TypeInfo(TMyEnumArray)); //Invalid variant type conversion
end.
Is it possible to convert array of enums to a variant? I know that I could use array of integers and cast them back to enums but I do not want to do this.