多謝各位了﹐我只有多放分了

解决方案 »

  1.   

    我傳的是'str1','str2','str3'.......請賜教
      

  2.   

    参考Format函数,用的是Variant数组吧好像。。
      

  3.   

    Integer数组的例子
     type
        TDynamicArray = array of Integer;  procedure p(Value: TDynamicArray);
      begin
        Value[0] := 1;
      end;  procedure Run;
      var
        a: TDynamicArray;
      begin
        SetLength(a, 1);
        a[0] := 0;
        p(a);    Writeln(a[0]); // Prints "1"!
      end;
      

  4.   

    你可以使用array of const;比如
    procedure DoSomething(A: array of const);
    或者
    function MakeStr(const Args: array of const): string;调用例子:
    MakeStr(['test', 100, ' ', True, 3.14159, TForm])
      

  5.   

    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:    Result := Result + IntToStr(VInteger);
            vtBoolean:    Result := Result + BoolToStr(VBoolean);
            vtChar:       Result := Result + VChar;
            vtExtended:   Result := Result + FloatToStr(VExtended^);        vtString:     Result := Result + VString^;
            vtPChar:      Result := Result + VPChar;
            vtObject:     Result := Result + VObject.ClassName;
            vtClass:      Result := Result + VClass.ClassName;
            vtAnsiString: Result := Result + string(VAnsiString);
            vtCurrency:   Result := Result + CurrToStr(VCurrency^);
            vtVariant:    Result := Result + string(VVariant^);
            vtInt64:      Result := Result + IntToStr(VInt64^);    end;
    end;
      

  6.   

    使用开放数组参数:
    function FunctionName(const ArrayName: array of Integer) : Integer;
    注意在函数体中不能访问整体数组,而只能访问对应数组的元素。Integer 可以为其他类型。
      

  7.   

    我刚想出来的一个方法,不知道可不可用
    具体思路:
    定义一个只有一个参数的函数
    ex:
    function Name(s:string):string;
    当客户端要传未知个数的参数时,可以这样写
    假如有3个则
    s:='par1,par2,par3'
    把s作为参数传
    再在函数里根据传进来的参数根据","号分解出来就行了
    至于分解的函数我想大家都会写了,csdn上多得是