试试这个就明白了:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.Caption:= Sender.ClassName;
end;

解决方案 »

  1.   

    Sender是触发这个事件的对象
    你看看Vcl的源代码就知道了
    比如:
       if Assigned(FOnClick) then
         FOnClick(Self);
    这里的Self就是对象自己。
      

  2.   


    需要从他的内部实现来:内部有一个(其实是由TControl实现的)    FOnClick: TNotifyEvent;  //只一个是函数的指针又有   TNotifyEvent = procedure(Sender: TObject) of object;
    真正的调用有类似下面的方法,当接受到鼠标点击的消息时有类似以下的处理:if Assigned(FOnClick) then FOnClick(self); //传递的参数是控件自身的对象指针
      

  3.   

    就是当前触发事件对象的地址值
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(IntToStr(Integer(Button1)));
      ShowMessage(IntToStr(Integer(Sender)));
    end;
    procedure TForm1.Form1Click(Sender: TObject);
    begin
      ShowMessage(IntToStr(Integer(Form1)));
      ShowMessage(IntToStr(Integer(Sender)));
    end;
    显示信息都相同,看出点意识出来了吧