主题:动态创建的菜单项,如果几个菜单项共用一个onClick过程,如何判断当前点击的是哪一个项?
myzhz1978
[专家分:0] 发布于 2006-12-29 09:30:00
动态创建的菜单项,如果几个菜单项共用一个onClick过程,如何判断当前点击的是哪一个项? 如何获取其索引值?
回复列表 (共4个回复)
沙发
tanchuhan [专家分:15140] 发布于 2006-12-29 11:48:00
可从sender对象中读取被点击菜单项的所有信息
板凳
myzhz1978 [专家分:0] 发布于 2006-12-29 21:16:00
能说得详细些吗,Sender.下的过程和函数并不多,我看了一下,还是不知道应该用哪个?
3 楼
tanchuhan [专家分:15140] 发布于 2006-12-30 14:19:00
不好意思,因为我不是用Delphi的,所以我的电脑上没有装到有Delphi.
不过,为了帮楼主解决这个问题,我刚才特意装上了Delphi6,你试一下下面的代码:
procedure TForm1.N1Click(Sender: TObject);
var
new_N1:TMenuItem;
begin
new_N1:=TMenuItem(sender);
self.caption:=new_N1.Caption ;
end;
看明白了吗?我这里仅仅是示例.
每个菜单项单击都会产生Click事件,并且参数中有Sender,这个Sender就是引发事件的对象,所以用强制类型转换可以得到引发事件的对象: new_N4:=TMenuItem(sender);
得到对象后,你就可以用TMenuItem对象读取各种你需要的信息了.
不知道楼主看不看得明白我的意思,呵呵,我不会Delphi的,其实我比你还差的.
如果你明白了的话,相信你也可以自己解决你问的那个问题了?
4 楼
myzhz1978 [专家分:0] 发布于 2006-12-30 17:27:00
已经解决了,太感谢了,tanchuhan,为了解决问题,还特意装上了Delphi6,要是在网上总能遇到象你这样的朋友,编程都变成了一种乐趣!!!谢谢!
我来回复