窗体上有5个TButton,想让单击某个按钮,自动响应出这样的信息来看代码,拷不明白什么没有想象中效果
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Edit1: TEdit;
  private
    { Private declarations }
  public
    procedure buttonClick(Sender:TObject);
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ButtonClick(Sender: TObject);
begin
    if  (Sender is TButton) then
      showMessage(format('这是Button:%s',[TButton(Sender).GetNamePath]));end;
end.
一点反应都没有,好生厉害哦!!

解决方案 »

  1.   

    有没有指定这些button的OnClick事件?
      

  2.   

    完全不明白你的意思,上面的執行應該是可以的。不行有可能是DFM裏沒有將事件關聯起來。或者你動態改變了BUTTONCLICK的指針
      

  3.   

    把ButtonClick定义在published,再把所有BUTTON的onClick事件指向ButtonClick
    published
      procedure ButtonClick(Sender: TObject);
      

  4.   

    不用定义在published,定义在private都没问题,楼主的问题就是如1、2楼说的没关联而已,举例如下:
    procedure TForm1.OnCreate(Sender: TObject);
    begin
      Edit1.OnClick := ButtonClick;
      Edit2.OnClick := ButtonClick;
      Edit3.OnClick := ButtonClick;
      Edit4.OnClick := ButtonClick;
    end;
      

  5.   

    OK了,就4楼说的。这样就出了个问题,要是动态生成的控件就比较难办lo