动态生成多个控件时,如何给每控件一个不同的事件

解决方案 »

  1.   

    以Tbutton的click事件为例var
     btnclk:TNotifyEvent;procedure TForm1.btnclick(Sender: TObject);
    begin
      ...
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      btn:Tbutton;
    begin
      btn:=Tbutton.Create(self);
      ....
      btn.OnClick:=btnclick;
    end;
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure ButtonClick1(Sender: TObject);//
        procedure ButtonClick2(Sender: TObject);//
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      btn:TButton;
    begin
      btn:=TButton.Create(Owner);
      btn.OnClick:=ButtonClick1;// or btn.OnClick:=ButtonClick2;
    end;procedure TForm1.ButtonClick1(Sender: TObject);
    begin
    //
    end;procedure TForm1.ButtonClick2(Sender: TObject);
    begin
    //
    end;end.