Am 31.01.2012 09:55, schrieb ik:
Hello,
I wish to create something like this:
function foo(a : String; b : array of const) : string;
begin
Result := bar([a] + b);
end;
But this works only on Sets.
The thing is, that A must be before the rest of "b". and it is different
then the b values, that's why I extract it to a different parameter.
How can I add a to the list, and make it the first element ?
There is no easy way, only the following:
function foo(a: String; b: array of const): String;
var
tmp: array of TVarRec;
i: LongInt;
begin
SetLength(tmp, Length(b) + 1);
tmp[0].VType := vtAnsiString; // Note: Only if "foo" is in a unit
with {$H+} set (or mode Delphi)
tmp[0].VAnsiString := Pointer(a);
for i := 0 to High(b) do
tmp[i + 1] := b[i];
Result := bar(tmp);
end;
Regards,
Sven
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal