当前事件是由Sender对象产生的!
如在:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Sender是指这个Button1
  if Sender is TButton then
     if TButton(Sender).Name='Button1' then
        showmessage('是啊,确实是这个按钮啊!');
end;

解决方案 »

  1.   

    在象buttonclick这些事件里,都可以看到sender : tobject这样的参数。
    实际在这里,sender代表的就是触发该事件的对象。
    利用sender可以某个对象而在程序中使用,例如,判断触发事件的是否button,然后在进行处理。Tform.button1click(sender :Tobject)
    begin
      if sender.name = 'Button1' then
        ...
      else if sender.name = 'button2' then
        ...
    end;在这里,button1和button2是共享了button1click这个事件的
      

  2.   

    补充:
      利用 Sender is TForm 等方式可以判断消息是谁触发的,
    利用(Sender as TForm)可以具体化Sender对象。如
      if (Sender is TButton) then 
      begin
        (Sender as TButton).Caption:='我发的消息';
      end;
      

  3.   

    sender是作为一个对象存在的,没有特定的对象,主要用于代码的共用。
      

  4.   

    Send为对象发出者!或事件激发者。
    建议好好看看VCl库的总体结构,就会明白的。
      

  5.   

    非常感谢楼上的朋友
    VCL库的总体结构从哪能看到?谢谢
      

  6.   

    我也补充一点:你可以使多个构件共用一个方法,在方法中用Sender来判断到底是哪个构件触发了事件。比如在Form上放置n个Button:Button1..Buttonn,它们都用一个ButtonClick事件。用Sender就可以确定究竟点击了哪个按扭