如何确认是那个控件接受了输入?(50分)

  • 主题发起人 主题发起人 ayon
  • 开始时间 开始时间
A

ayon

Unregistered / Unconfirmed
GUEST, unregistred user!
一个简单的问题
有多个控件共享同一个的事件处理程序
比如 MyButton1,MyButton2共同使用MyButtonClick来处理事件
那么,在MyButtonClick中,我怎么确认,是谁接受了点击?
 
建立一个变量,传递控件的名字不行吗?
 
或许你误解了
但我觉得那样根本不可能

 
是这样吗?
procedure aaa(sender:tobject);

procedure TForm1.aaa(sender:tobject);
begin
if (sender is tbutton) then
caption:=(sender as tbutton).name;
end;
 
送你一招:
MyButton1.Tag := 1 ,MyButton2.Tag :=2
//MyButton1
if (Sender as TButton).Tag = 1 then
//MyButton2
else
 
if (Sender as TButton).Caption = 'MyButton1' then
 
我比较赞成 YFeral 的方法。
还可以改进为
case (sender as TButton).tag
1:
2:
 
sender参数的作用啊!
if sender=button1 then showmessage('button1');
if sender=button2 then showmessage('button2');
 
你可以对各个按钮赋不同的 Tag 值。
在处理时,就知道是哪个按钮了。

TButton(Sender).Tag
 
if mybutton1.foucused then
if mybutton2.foucused then
 
to Aiirii:
你的做法不可取,有时候程序中需要动态改变button的Caption你那个还有戏?
 
to dedema:
不要光写!试试你写的行吗?
 
谢谢各位提示
事实上可以由N多方法实现
判断
(Sender as TButton).Tag
(Sender as TButton).Name
都可以
但是(Sender as TButton).Caption不太好


 
button.foucused也应该可以
 
后退
顶部