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.

相关阅读 >>

Delphi 判断 中文字符

Delphi源码简单的实现粘贴复制代码

Delphi win7,win2008,win2003,winxp 屏蔽ctrl+alt+del

Delphi使用xmlhttp组件代码

Delphi kbmmw sampleservice/sampleclient方式传输数据集

推荐一套免费跨平台的Delphi 哈希及加密算法库

Delphi中showmodal 和 show 的区别

Delphi 新增功能之: ioutils 单元(7): tfile 结构的功能

Delphi isdirectory 判断是否是目录

Delphi 去除 tstringlist 重复项

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



打赏

取消

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

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

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

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

评论

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