我现在想调用一个已知函数,函数如下
function  Call(a:array of string;b:array of byte;var c:array of string):integer;我定义了一个 aa:array of string ;  bb:array of byte; cc:array of string;
然后对aa、bb、cc进行赋值,aa[0]:=..,aa[1]:=.., ……调用 Call(aa,bb,cc);运行报错。
小弟初学delphi,请高手指教。

解决方案 »

  1.   

    动态数组赋值之前先用SetLength来设置数组长度
      

  2.   

    数组类型参数分为2种,一种是静态数组参数,另一种是开放数组参数
    静态数组作为一种确定的类型,例:
    type
     TArr = array[0..21] of Integer;
    end;
    var
     A: TArr;
    function Call(tmp: TArr): Integer;
    var
     i, Count: integer;
    begin
      for i := 0 to 21 do
      begin
        Count := Count + tmp[i];
      end;  
    end;开放数组参数
    function call(const A: array of Integer): Integer;
    var
     i, Count: integer;
    begin
      for i := 0 to High(A) do
      begin
        Count := Count + tmp[i];
      end; 
    end;prcedure Form1.Button1Click(Sender: TObject);
    var
     Test: array of Integer;
     Count: integer;
    begin
      SetLength(Test,10);
      Test[0] := 1;
      Test[1] := 2;
      ....
      ShowMessage(InttoStr(Call(Test));
    end;