implementation
procedure ShowValues1(args: array of variant);
procedure ShowValues2(args: variant);
procedure ShowValues3(args: array of string);
procedure ShowValues4(args: array of const);
implementation
function TForm1.addone(i: integer): string;
begin
Result := IntToStr(i + 1);
end;
//----------------- using varray of variant ------------
procedure TForm1.Button1Click(Sender: TObject);
begin
showvalues1([1,'996', 88, '587']);
end;
procedure TForm1.ShowValues1(args: array of variant);
var
ti: integer;
begin
for ti := Low(args) to High(args) do
memo1.lines.add(addone(args[ti]));
end;
//------------------ using VarArrayOf ---------------------
procedure TForm1.Button2Click(Sender: TObject);
begin
showvalues2(VarArrayOF([1,'996', 88, '587']));
end;
procedure TForm1.ShowValues2(args: variant);
var
ti: integer;
begin
for ti := VarArrayLowBound(args, 1) to VarArrayHighBound(args, 1) do
memo1.lines.add(addone(args[ti]));
end;
//------------------------------ using array of string ----------------------
procedure TForm1.Button3Click(Sender: TObject);
begin
showvalues3([IntToStr(1),'996', IntToStr(88), '587']);
end;
procedure TForm1.ShowValues3(args: array of string);
var
ti: integer;
begin
for ti := Low(args) to High(args) do
memo1.lines.add(addone(StrToInt(args[ti])));
end;
//--------------------------- using array of const --------------------------
procedure TForm1.Button4Click(Sender: TObject);
begin
showvalues4([1,'996', 88, '587']);
end;
procedure TForm1.ShowValues4(args: array of const);
var
ti: integer;
tj: integer;
begin
for ti := Low(args) to High(args) do begin
case args[ti].VType of
vtInteger: tj := args[ti].vInteger;
vtAnsistring: tj := StrToInt(AnsiString(args[ti].vAnsiString));
end;
memo1.lines.add(addone(tj));
end;
end;