比如说form1.buttonOnclick(sender:Tobject)
那么说sender就是button经常有这样的用法
 if sender=button then
       .........

解决方案 »

  1.   

    按上面说的那sender和button 又有什么区别呢?
      

  2.   

    sender 应该是控件所属的类。
      

  3.   

    sender  是发送程序的对象句柄。上面的有错误。
      

  4.   

    Sender是响应事件的对象本身。
    你可以跟到VCL中看一下。 注意FOnClick的参数,就是Self
    procedure TControl.Click;
    begin
      { Call OnClick if assigned and not equal to associated action's OnExecute.
        If associated action's OnExecute assigned then call it, otherwise, call
        OnClick. }
      if Assigned(FOnClick) and (Action <> nil) and (@FOnClick <> @Action.OnExecute) then
        FOnClick(Self)
      else if not (csDesigning in ComponentState) and (ActionLink <> nil) then
        ActionLink.Execute
      else if Assigned(FOnClick) then
        FOnClick(Self);
    end;
      

  5.   

    Sender 应该是产生事件的对象的实例引用。必要时可把它转换为相应的对象类型。以下的实验可帮助你理解Sender的含义;新建一个应用程序,在主from 上放置 3-4个button,然后双击其中一个botton在她的onclick事件中编写如下代码;
         
        showmessage((Sender as Tbutton).name);
    然后是其余几个button的onclick事件都指向刚才的button 的onclick事件(每个button的onclick属性页那里点一下,就有一个下拉列表就会出现刚才所写的onclick事件过程,选中即可)
       运行程序,按不同的按钮看有什么结果。