对不起,我是菜鸟,请教一个问题,帮帮忙解答一下(50分)

  • 主题发起人 主题发起人 TomCat_ZYS
  • 开始时间 开始时间
T

TomCat_ZYS

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么有的过程有Sender:TObject,有的没有,Sender:TObject是什么样的参数,什么作用
 
增强通用性,代码方便移植
 
Sender:TObject 是用来传递 控件本身给该控件的事件的!
例如:
procedure TForm1.Button1Click(Sender: TObject);
begin
(Sender as TButton).Name//此处的Sender 一般就是Button1
end;
 
Delphi 简化了很多本来看起来很复杂的 Windows 消息和事件,其中,定义了一个
TNotifyEvent 用来做一般性的事件通知方法。这个方法定义的时候就定义了需要传递
一个参数,这个参数通常传递引起这一事件的肇事者,获得事件的一方,可以检查这个
肇事者,也可以不检查。你想想,这样多方便,需要的时候我就用它,不需要的时候我
当它没有。这是通用性定义事件方法的典范。
 
是的。
举个例子:
有10个button,分别对应十个操作,你可以写一个过程就一完成.
10个button 分配 tag=1,2,...10
在button1 上
procedure Button1onclick(Sender:Tobject)
begin
if not ( sender is Tbutton) then Exit;
case Tbutton(sender).Tag of
1:
2:
3:
...
...
end;

end;

然后把其他按钮的事件都绑定到 button1.click中,就可以了。
 
通过判断Sender这个参数,可以达到灵活处理多种事件的效果。
比如 Button1Click(sender: TObject);
如果是用户点的界面上的按钮,sender就是Button1,
而你还可以在程序中调用这个函数,比如
Form1Show函数中,可以调用Button1Click(nil);
通过判断sender是不是nil就知道是客户点了按钮还是formshow时程序的调用。
 
楼上的解释不错!
sender就是你的事件的点后面的那个对象!
 
Sender是触发该事件的对象,一般情况下是控件本身,但如果用程序代码调用则是触发事件的控件,这个属性非常有用
 
向上继承,因为所有的类都从TOBJECT继承来的,所以Sender:TObject做参数时可以自动做类型识别。
 
后退
顶部