能不能详细的结实sender的意思和用法,怎么知道正在操做的对象是哪个?

解决方案 »

  1.   

    Sender准确的说应该是接到相应消息的那个对象,所以很多事件传入的第一个参数就是Sender
      

  2.   

    Sender 的通俗含义就是这个事件是谁触发的,就是谁叫你干的?
    :)
      

  3.   

    Sender一般用在这种模式。如果你有几个控件都响应同一个事件如:OnClick事件,而且对该事件的处理方式都差不多,你就会考虑这些控件会使用同一个OnClick处理过程 -- BtnClick(Sender: TObject)。但是作为由不同的控件触发一个处理过程过程的时候,你可能还是希望知道是哪一个控件触发的,这时候你就会用到Sender了,每个控件在调用Onclick(或者其他事件接口的时候),就会将自己的引用传过去,如:
        if Assigned(OnClick) then OnClick(Self)
    这么说,你在处理事件时,你就可以通过一些处理来知道具体是那个控件触发了事件。
        如: Case (Sender as TComponent).tag of ....
      

  4.   

    self指向当前Sender的指针,与VC里的this有些相似如:在form1的OnCreate里,用Form1.Caption,self.Caption,Caption三种表示是一样的