一、Sender的定义:
每一个事件处理里面至少都有一个Sender参数。比如:
procedureTForm1.Button1Click(Sender:TObject);
begin
<代码段>
end;
当点击BUTTON1时,会产生一个Button1Click事件,系统会把Button1传递给Button1Click过程作为参数:
Sender的含义就是代表调用TForm1.Button1Click这个过程的控件,即Sender代表控件Button1。
二、用法:(经常配合is和as使用)
1、Sender代表了调用所在过程的控件,那么你就可以直接把它拿来当那个控件用
例: button2共用了button1的过程:
ProcedureTForm1.Button1Click(Sender:TObject);
Begin
//sender直接当控件使用
IfSender=button2 then ShowMessage(‘您按下了button2’);
End;
2、如果要用属sender代表的控制属件,用 (sender as 控件类名).属性 (注意是控件类名)
例 button2,button3共用了button1的过程
ProcedureTForm1.Button1Click(Sender:TObject);
Begin
Case (Sender as Tbutton).tag of //在每个button设置tag值,case要求有序类型
//或写成Case Tbutton(sender).tag of
1:ShowMessage(‘您按了Button1’);
2:ShowMessage(‘您按了Button2’);
3:ShowMessage(‘您按了Button3’);
End;
End;