Ich würde das mal mit
TValue
versuchen. Der löst in
FromVarRec
die Referenzen auf die Pointer auf. Die Zuweisung kann in dem Fall sogar wegen
Implicit
so bleiben. Lediglich bei der Auswertung muss man dann halt was machen (z.B. über
AsVarRec
).
Delphi-Quellcode:
PRec = ^TRec;
TRec = record
Params: array of TValue;
end;
Delphi-Quellcode:
procedure Something(const Args: array of const);
var
RecPtr: PRec;
begin
New(RecPtr);
SetLength(RecPtr^.Params, Length(Args));
for I := Low(Args) to High(Args) do
RecPtr^.Params[I] := Args[I];
end;