当前事件是由Sender对象产生的!
如在:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Sender是指这个Button1
if Sender is TButton then
if TButton(Sender).Name='Button1' then
showmessage('是啊,确实是这个按钮啊!');
end;
如在:
procedure TForm1.Button1Click(Sender: TObject);
begin
//Sender是指这个Button1
if Sender is TButton then
if TButton(Sender).Name='Button1' then
showmessage('是啊,确实是这个按钮啊!');
end;
实际在这里,sender代表的就是触发该事件的对象。
利用sender可以某个对象而在程序中使用,例如,判断触发事件的是否button,然后在进行处理。Tform.button1click(sender :Tobject)
begin
if sender.name = 'Button1' then
...
else if sender.name = 'button2' then
...
end;在这里,button1和button2是共享了button1click这个事件的
利用 Sender is TForm 等方式可以判断消息是谁触发的,
利用(Sender as TForm)可以具体化Sender对象。如
if (Sender is TButton) then
begin
(Sender as TButton).Caption:='我发的消息';
end;
建议好好看看VCl库的总体结构,就会明白的。
VCL库的总体结构从哪能看到?谢谢