procedure TForm1.TeTabSheet4Show(Sender: TObject);
var
  tb1:array[0..2] of TTeButton;
  tb2:array[0..2] of TTeButton;
  tb3:array[0..2] of TTeButton;  i: Integer;
begin
  for i := 0 to 2 do
  begin
    tb1[i]:=TTeButton.Create(self);
    tb1[i].Parent:=gb[i];
    tb1[i].Caption:='修改';
    tb1[i].Left:=210;
    tb1[i].Top:=100;
    tb2[i]:=TTeButton.Create(self);
    tb2[i].Parent:=gb[i];
    tb2[i].Caption:='添加';
    tb2[i].Left:=287;
    tb2[i].Top:=100;
    tb3[i]:=TTeButton.Create(self);
    tb3[i].Parent:=gb[i];
    tb3[i].Caption:='删除';
    tb3[i].Left:=364;
    tb3[i].Top:=100;
  end;
end;   这段代码将一次性动态产生3个按钮,根据循环的多少将出现多个3个为一排的按钮,
但不知每个按钮的事件怎样添加,怎样写事件?大家帮帮忙!!

解决方案 »

  1.   

    type
      TForm1 = class(TForm)
        procedure sclick(sender:TObject);//要自己加入的
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      s:tbutton;//声明一个按钮
    implementation{$R *.dfm}
    procedure Tform1.sClick(Sender: TObject);//按钮的单击过程
    begin
      showmessage('create');
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      s:=tbutton.Create(self);//创建按钮
      s.Parent:=form1;
      s.Caption:='button2';
      s.Left:=110;
      s.Top:=110;
      s.OnClick:=sclick;//这一行让按钮的单击事伯去调用sclick过程
    end;
    end.
      

  2.   

    例子
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids, StdCtrls, DB, ADODB;type
      TForm1 = class(TForm)
        StringGrid1: TStringGrid;
        Button1: TButton;
        ADOQuery1: TADOQuery;
        procedure Button1Click(Sender: TObject);  
        procedure BtnClick(Sender: TObject);    //----
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
      uses Unit2;
    {$R *.dfm}procedure TForm1.BtnClick(Sender: TObject);
    begin
      ShowMessage('hello');
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      tb1:array[0..2] of TButton;
      tb2:array[0..2] of TButton;
      tb3:array[0..2] of TButton;  i: Integer;
    begin
      for i := 0 to 2 do
      begin
        tb1[i]:=TButton.Create(self);
        tb1[i].Parent:=gb[i];
        tb1[i].Caption:='э';
        tb1[i].Left:=210;
        tb1[i].Top:=100;
        tb1[i].OnClick := BtnClick;//----添加事件
      end;
    end;end.
      

  3.   

    procedure TForm1.ButtonClick(Sender: TObject);
    begin
        showmessage((sender as Tbutton).caption);
    end;....
    tb1[i].OnClick:=ButtonClick;
      

  4.   

    agree with  YAMABACK(披荆斩棘,努力前进!) .