Wird derzeit nicht unterstützt, kannst du aber einfach einbauen - gehe dazu in die DUnitX.Utils
unit und füge diese Routine hinzu:
Delphi-Quellcode:
function ConvStr2Arr(const ASource: TValue; ATarget: PTypeInfo; out AResult: TValue): Boolean;
var
lValue: string;
lValues: TStringDynArray;
lArrayData: TArrayTypeData;
elType: PTypeInfo;
tmp: TValue;
i: Integer;
begin
lValue := ASource.AsString;
if Length(lValue) < 2 then
Exit(False);
if (lValue[1] <> '[') or (lValue[Length(lValue)] <> ']') then
Exit(False);
lValue := Copy(lValue, 2, Length(lValue) - 2);
lValues := SplitString(lValue, ',');
// todo: support multi dim arrays - assume one dim for now
lArrayData := GetTypeData(ATarget).ArrayData;
elType := lArrayData.ElType^;
if Length(lValues) <> lArrayData.ElCount then
Exit(False);
TValue.Make(nil, ATarget, AResult);
for i := 0 to lArrayData.ElCount - 1 do
begin
if not TValue.From(lValues[i]).TryConvert(elType, tmp) then
Exit(False);
AResult.SetArrayElement(i, tmp);
end;
Result := True;
end;
Außerdem musst du sie noch in das Conversions Array bei [tkUString,tkArray] eintragen.
P.S. Dann klappt das übrigens auch mit dem const.