Delphi中编写参数个数可变的函数


本文整理自网络,侵删。

 这是从Delphi帮助中摘出的一个例子,稍做改动。

Program Test;
{$APPTYPE CONSOLE}

uses Windows, System, SysUtils;

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.

相关阅读 >>

移植Delphi7的tclientsocket,tserversocket

Delphi2007 读取得unicode文本

Delphi tadocommand 中文使用说明

aes.pas 和 elaes.pas

Delphi获得硬盘所有分区

Delphi 获取屏幕缩放比例

Delphi 去掉ide开启后弹出安全警告框

Delphi中txmldocument控件的用法

Delphi eof 判断文件指针是否移动到了文件未尾

Delphi清除ie临时文件,历史记录

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...