怎样为动态创建的组件加入事件?多个类似的组件共用一个事件。

解决方案 »

  1.   

    先写一个 Procedure LabelOnClick(Sender:TObject);放到某个事先设计好的类的,如:Form
    然后在
    Label1 := TLabel.Create(NIL);
    Label1.OnClick := LabelOnClick;
    然后显示它,....
    就行了。
      

  2.   

    kiboisme(还是铁棒.....针) 说得对,先建一个procedure,然后用***.click:=YouProcedure给他就OK!
      

  3.   


    procedure TForm1.pp(Sender: TObject);
    begin
         //写你要处理的代码.
    end;//以下是动态创建一个TBitBtn
    procedure TForm1.BitBtn2Click(Sender: TObject);
    var
         b : TBitBtn;
    begin
         b := TBitBtn.Create(nil);
         b.Name := 'dd';
         b.Parent := Form1;
         //......设置其它属性
         b.OnClick := pp;//指向pp过程
    end;
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        procedure OnClick(Sender :TObject);
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    procedure TForm1.OnClick(Sender :TObject);
    begin
      ShowMessage('OK');
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      Button :TButton;
    begin
      Button :=TButton.Create(Self);
      Button.Parent :=Self;
      Button.Left :=100;
      Button.Top :=100;
      Button.OnClick :=OnClick;
    end;end.