我动态添加了几个按钮,请问如何声明这些按钮的click事件?点击时时如何判断我点击的是那个按钮?

解决方案 »

  1.   

    procedure buttonclick(sender:TObject);var b1:tbutton;
    .
    .
    .b1.onclick:=buttonclick;
      

  2.   

    给动态按钮添加事件的简单例子Button1:=TButton.Create(Self);
    Button1.OnClick:=Self.DoOnClick;
    上面的DoOnClick是一个和OnClick兼容的类方法,需要自己写,OnClick的具体的函数的定义,帮助里面有,用那个函数定义声明自己的方法,这个方法必须是一个类方法。判断按钮的简单例子:if Sender=Button1 then
    ....就这么简单
      

  3.   

    procedure UnknowButtonOnClick(sender:TObject); //or Tbutton;
    begin
      if sender is MyButton then  //mybutton动态生成的哪个按包
         ....
    end;
      

  4.   

    sender:tobject,每个CLICK事件对应!
      

  5.   

    // 定义动态按钮的Click事件:
      public
        procedure ActiveButtonClick(Sender: TObject);
    procedure TForm1.ActiveButtonClick(Sender: TObject);
    begin
      if TButton(Sender).Name = 'Button1' then
        ShowMessage('Button1');
    end;
    // 动态创建按钮:
    var
      btn: TButton;
    begin
      btn := TButton.Create(Self);
      btn.Parent := Self;
      btn.Name := 'Button1';
      btn.Caption := 'Button1';
      btn.OnClick := ActiveButtonClick;  // 指定Click事件
      btn.Visible := True;
    end;