新手:为什么函数中一般都有sender:TObject procedure TFmCtrlGrid.DBGrid1Enter(Sender: TObject); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sender:Tobjectsender 是你发生事件的对象,比如,点击按钮(button1) sender 就是 button1,但是默认该对象是TOJECT所以你在使用的时候需要进行类型转换 TButton(sender).caption(如获得按钮上的文本)。 一个事件不一定能对应一个控件如:Button1.OnClick := Button1Click;Button2.OnClick := Button1Click;Button3.OnClick := Button1Click;Button4.OnClick := Button1Click;四个按钮都执行同一个事件代码procedure Button1Click(Sender: TObject);就可以通过Sender来确定用户点击的是哪个按钮 sender is Tbutton1 DoSomethingsender is Tbutton2 DoSomethingSender is TButton3 DoSomeThing... 楼上的显然说错了。if sender = Button1 then..else if sender = Button2 then..else if sender = Button3 then..else if sender = Button4 then Sender很多时候是和Tag属性一起用:比如,编写一个计算器,有0~9 共10个按钮,可以使用1个函数,在10个按钮的Tag属性中设定每个按钮对应的整数值,在事件里面写:TComponent(Sender).Tag即可知道当前按钮的值。 在Delphi中,TObject是所有类的祖先类,在一些通用的过程(特别是事件过程)中,使用TObject类型参数才能保证任何类实例的传递。在过程中,如需使用这个参数,可用'is'或者'='进行判断后,强制转换为特定类进行处理。 请教达人一个将商品类别的数据库导入到Treeview的算法(在线等啦~) locate函数的用法。 请教拖拉控件的问题 把鼠标状态变成忙状态后 用户单击无效 如同Windows处于忙状态 招募兼职程序员 如何编程实现系统的待机,休眠 表格单选能功~~ 我想获得当前时间,但是要精确到毫秒,请问如何做?如:2003年4月4日16点58分20秒10毫秒 怎样把TStream类型转换成Pointer类型? 请教一个关于Delphi7的关于TcpServer与Unix端收发数据的问题 windowsmediaplayer 怎么截图? 安装第三方控件与以前的控件冲突怎么办???
如:
Button1.OnClick := Button1Click;
Button2.OnClick := Button1Click;
Button3.OnClick := Button1Click;
Button4.OnClick := Button1Click;四个按钮都执行同一个事件代码
procedure Button1Click(Sender: TObject);
就可以通过Sender来确定用户点击的是哪个按钮
DoSomething
sender is Tbutton2
DoSomething
Sender is TButton3
DoSomeThing
...
if sender = Button1 then
..
else if sender = Button2 then
..
else if sender = Button3 then
..
else if sender = Button4 then
比如,编写一个计算器,有0~9 共10个按钮,可以使用1个函数,在10个按钮的Tag属性中设定每个按钮对应的整数值,在事件里面写:
TComponent(Sender).Tag即可知道当前按钮的值。