当然可以,如:
procedure TForm1.Button1Click(Sender: TObject);
 var
   MyEdit:array[0..2] of Tedit;
   i:integer;
 begin
   MyEdit[0]:=self.edit1;
   MyEdit[1]:=self.edit2;
   MyEdit[2]:=self.edit3;
   for i:=0 to 2 do
     begin
       ShowMessage(Tedit(MyEdit[i]).text);
     end;
 end;

解决方案 »

  1.   

    定义数组时可以定义多种类型,如:twincontrol,tbutton,tcombobox,tlabel.....
      

  2.   


    在 Delphi 中实现类似 VB 中的控件数组:  你可以通过设置一组相应控件的 Tag 属性来实现这一功能。首先在窗体中放置 3 个 Button 控件,然后分别设置这三个控件的 Tag 属性为 1、2、3。接下来双击任意一个按钮,在其代码部分输入如下代码:
        procedureTForm1.Button1Click(Sender: TObject);
        var 
          cap: string;
        begin
          case TButton(sender).Tag of
            1: ShowMessage('1st Button Pressed');
            2: ShowMessage('2nd Button Pressed');
            3: ShowMessage('3rd Button Pressed');
          end;
        end;
        最后在其他两个按钮的 ONCLICK 事件中添加相同的代码。这样一来就可以实现以上功能了。点击一下按钮试试?
      

  3.   

    非常感谢(暴雪),我是个Delphi新手,以后请多指教我的QQ是:17474644.请问你的能否告诉我?谢谢你,100分你应得的。
      

  4.   

    我也是个delphi新手,共同进步.我的:8051003,只是我不常上,有机会聊聊:)
      

  5.   

    我也是个delphi新手,共同进步.我的:8051003,只是我不常上,有机会聊聊:)
      

  6.   

    procedureTForm1.Button1Click(Sender: TObject);
        var 
          lblarray:array[0..5] of tlabel;
          i:integer;
        begin
          for i:0 to 5 do
        begin
        lblarray[i]:=tlabel.create(self);
        lblarray[i].left:=xx  //set a value
        lblarray[i].top:=xx   //set avalue
        lblarray[i].caption:='hello,i am label'+inttostr(i+1);
        lblarray[i].parent:=self;
        end;
        // rember to free them .    
           
        end;
      

  7.   

    以下是Delphi中动态生成控件及其事件的方法(摘自《电脑编程技巧及维护》2002第4期):
    unit unit1;
    interface
    uses
      windows,messages,sysutils,classes,graphics,controls,forms,dialogs,stdctrls;
    type
      TForm1 =class(TForm)
       procedure FormCreate(Sender:TObject);
      private
       {private declarations}
        MakeEdit:array [0..100] of TEdit;
        iMakeEditCount:integer;
        procedure MakeEditPress(Sender:TObject;var Key:char);
      public
      {public declaration}
      end;var
      Form1:TForm1;
    implementation
    {$R *.DFM}procedure TForm1.FormCreate(Sender:TObject);
    var
     i:integer;
    begin
      iMakeEditCount:=3;
      for i:=0 to iMakeEditCount do
      begin
          MakeEdit[i]:=TEdit.Create(Form1);
          MakeEdit[i].parent:=Form1;
          MakeEdit[i].Font.Color:=clGreen;
          MakeEdit[i].Name:='Edit'+InttoStr(i);
          MakeEdit[i].Text:='';
          MakeEdit[i].Left:=Form1.Left+60;
          MakeEdit[i].Top:=Form1.top+10+30*i;
          MakeEdit[i].OnKeyPress:=MakeEditPress;
        end;
    end;procedure TForm1.MakeEditPress(Sender:TObject;var Key:char);
    var
      sEditName:String;
      iEditNum:integer;
     begin
        sEditName:=(Sender as TEdit).Name;
        iEditNum:=strtoint(Copy(sEditName,5,Length(sEditname)-4));
        if Key = #13 then
          if iEditNum < iMakeEditCount then
              MakeEdit[iEditNum+1].SetFocus;
     end;
    end.
    //完
      

  8.   

    定义控件数组一定要指明它的拥有者和父,如是动态数组要先设置长度
    procedureTForm1.Button1Click(Sender: TObject);
    var
        tmpImage: array of TImage;
        i: integer;
    begin
        SetLenght(tmpImage,5);
        for i:=0 to 4 do
        begin
            tmpImage[i] := TImage.create(self);
            tmpImage[i].parent := self;
            ...
        end;