var
  btngp :array[0..n] of tbutton;
procedure ini_btngp;
begin
  btngp[0]:=button1;
  ................
  btngp[n]:=buttonn; 
end;
就这样,很简单吧!!!!,分拿来!!!!!

解决方案 »

  1.   

    先定义一个控件对象数组,然后给它赋值,虽然麻烦一点,但以后用起来就方便了,还是不如VB 好了,直接就有控件数组,不过好像VB。NET也没有了控件数组,这是不是一种趋势呢?
      记着给分啊!!
      

  2.   

    好象不行啊,
    出错了啊!
    提示错误是project project1.exe raised exception class Eaccessviolation with message 'access violation at address 00420eed in modal'
    我是这样写的
    var
      a:array [0..3] of TEdit;
      i:integer;
    begin
      for i:=0 to 3 do
      begin
        a[i].name:='edit'+inttostr(i);
        a[i].Text:='edit'+inttostr(i);
        a[i].Parent:=form1;
      end;
    end;
      

  3.   

    var
      a:array [0..3] of TEdit;
      i:integer;
    begin
      for i:=0 to 3 do
      begin
    //    a[i].name:='edit'+inttostr(i);
        a[i].Text:='edit'+inttostr(i);
        a[i].Parent:=form1;
      end;
    end;
    也不能用啊,大哥!
      

  4.   

    这样写:
    var
      i : integer;
      a : array[0..3] of TEdit;
    begin
      for i :=0 to 3 do
      begin
        a[i] := TEdit.Create(self);
        a[i].Name := 'edit' + inttostr(i);
        a[i].Left := i * a[i].Width;
        a[i].Text:='edit'+inttostr(i);
        a[i].Parent:=form1;  end;
    end;
      
     还有别忘了释放掉!
      

  5.   

    如果Create()的AOwner参数不为nil,那么在AOwner释放的时候会自动释放自己所有的子控件.
    象pathe那样,Create(self),已经传了当前表单的指针过去了,在当前的Form释放时会自动释放