var
buttton: array[1..6] of Tbutton;
begin
  for i := 1 to 6 do
  begin
    button[i] := Tbutton.create(self);
    button[i].parent := ...
    button[i].属性:=..
  end;
end;
然后通过button[i]操作,如果是事件可以用sender.

解决方案 »

  1.   

    定义动态数组:MyBtn: Array of TButton;
    定义数组长度:SetLength(MyBtn, 整数);
    对数组赋值:MyBtn[0]:= Button1;MyBtn[1]:= Button2;......等(方法比较多,可以按照你自己的实际情况使用最简单的方法)
    操作与普通数组操作方法一样,不过每个数组都具有TButton的特性:
    如MyBtn[0].Text:= '我是对的'; MyBtn[1].Text:= '方法正确';
    结果相当于Button1,Text:= '我是对的'; Button2.Text:= '方法正确';......
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      bt:tbutton;
      i:integer;
      ol:tobjectlist;
    begin
      ol:=tobjectlist.Create(true);
      bt:=tbutton.Create(self);
      bt.Name:='name1';
      ol.Add(bt);
      bt:=tbutton.Create(self);
      bt.Name:='name2';
      ol.Add(bt);
      for i:=0 to ol.Count-1 do
        if ol.Items[i] is tbutton then
            showmessage( tbutton(ol.Items[i]).name);
      ol.Free;end;此代码出自 doni(蓝色天空)
      

  3.   

    一般的使用TList来管理动态对象比较方便:
    procedure CreateButtonList(Count : integer;ButtonList: TList);
    var i : integer;
        bt:tbutton;
    begin  
      for i := 0 to Count-1 do 
      begin
        bt := TButton.Create(Self);
        try
          bt.parent := self;
          ButtonList.Add(bt);
        finally    end;
      end;
    end; 
    使用的时候可以使用强制类型转换:
        bt := TButton(ButtonList[n]);