谢谢

解决方案 »

  1.   

    在C中有函数定义:Fun(int out,...)--函数的参数是可变的
    va_list er;--开始提取参数
    va_start(er,out)--提取
    while{
    ...
    }
    va_end( er );--结束提取
      

  2.   

    function concate(args:array of string):string;
    var i:integer;
    begin
     result:='';
     for i:=Low(args) to high(args) do
      result:=result+args[i];
    end;ShowMessage(concate(['aaaaa','11111','~~~~~']));结果aaaaa11111~~~~~
      

  3.   

    你看看vcl source中format函数的定义就知道怎么办了,呵呵
      

  4.   

    呵呵,va_list 不过就是个指针罢了,没什么神秘的,呵呵。在C中有函数定义:Fun(int out,...)--函数的参数是可变的
    va_list er;--开始提取参数
    va_start(er, out)--提取  --> er <= out 后的参数的起始地址。va_end( er );--结束提取不过,Delphi 里没有这个,因为实在是太不安全了。
    Delphi 用变体数组实现了类似的功能。另外,Pascal 的标准过程 Write 等的参数也是“动态可变”的,但这依赖于编译器之
    “魔力”,呵呵。