var
  a:array of int;
begin
  SetLength(a,1000);
...
end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
      va: array of String;
    begin
      SetLength(va,cds1.FieldCount);
      for i := 0 to High(va) do
        va[i] := cds1.Fields[i].DisplayLabel;
    end;
      

  2.   

    如果在SetLength(va,1000)后,要增加数组长度,要如何,
    在vb中可以增加一个值,随时增加一个数组长度,而不是在开始就用SetLength订死,
    delphi中能不能随时增加一个长度。
      

  3.   

    我说的明白些,就是在
    for i := 0 to 1000 do
    begin
        //在这儿增加长度,因为你可能无法确定最后的长度,有可能很长,很可能很短end;
      

  4.   

    ?用变量赋值:
    var
      i,j:integer
      va:array of integer;
    begin
      i:=1000;
      setlength(va,i);
      for j:=0 to i do
      begin
         ...
      end;
    end;
    这里的i也可以通过函数的参数调用赋值。
    如:
    procedure TForm.DoSome(i:integer);
    var 
      j:integer;
      va:array of integer;
    begin
      setlength(va,i);
      for j:=0 to i do
      begin
        ...
      end;  
    end;
    调用时:DoSome(1000);或DoSome(1000+?);
      

  5.   

    不过,加长度没问题,数据还在,减么,???我不知道,记住,在最后,还要{va:array of integer;}以它来,va:=nil;
    上面的兄弟,是吧,???