function MakeStr(const Args: array of const): string;
var
I: Integer;
begin
Result := '';
for I := 0 to High(Args) do
with Args[I] do
case VType of
vtInteger:
begin
writeln('vtInteger');
Result := Result + IntToStr(VInteger) + ' ';
end;
vtBoolean:
begin
writeln('vtBoolean');
Result := Result + BoolToStr(VBoolean) + ' ';
end;
vtChar:
begin
writeln('vtChar');
Result := Result + VChar + ' ';
end;
vtExtended:
begin
writeln('vtExtended');
Result := Result + FloatToStr(VExtended^) + ' ';
end;
vtString:
begin
writeln('vtString');
Result := Result + VString^ + ' ';
end;
vtPChar:
begin
writeln('vtPChar');
Result := Result + VPChar + ' ';
end;
vtObject:
begin
writeln('vtObject');
Result := Result + VObject.ClassName + ' ';
end;
vtClass:
begin
writeln('vtClass');
Result := Result + VClass.ClassName + ' ';
end;
vtAnsiString:
begin
writeln('vtAnsiString');
Result := Result + string(VAnsiString) + ' ';
end;
vtCurrency:
begin
writeln('vtCurrency');
Result := Result + CurrToStr(VCurrency^) + ' ';
end;
vtVariant:
begin
writeln('vtVariant');
Result := Result + string(VVariant^) + ' ';
end;
vtInt64:
begin
writeln('vtInt64');
Result := Result + IntToStr(VInt64^) + ' ';
end;
end;
end;
begin
writeln(MakeStr(['abc', 123, 12.34, Now]));
end.