如何得到动态菜单项的索引(100分)

  • 主题发起人 主题发起人 tomye
  • 开始时间 开始时间
T

tomye

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序中动态的添加菜单项,但是如何才能得到该菜单项
的索引号?
...
procedure tform1.a;
begin
//要得到所选菜单项的索引号

end;

procedure tbutton1.click(sender:tobject);
var m:tmenuitem;
begin
m:=tmenuitem.create(self);
m.caption:='One Line';
popupmenu1.items[5].add(m);
m.onclick=a;
end;
...
 

procedure tform1.a(sender:tobject);
begin
if (sender is tmenuitem) then
(sender as tmenuitem).xxxxxx//其实sender就是所点击的那个menuitem
end;


用sender as tmenuitem可以将sender 转变成menuitem,所有的属性什么的照样用
 
不错,(Sender As TMenuItem)就是你所点击的菜单项,要访问它的属性可参照:

......
(Sender As TMenuItem).Caption:='Hello!!!';
......
 
为什么一定要得到索引号呢? 前2位介绍的方法就可以.
 
你把每一项的onclick:=a;
var index;

procedure tform1.a(sender:tobject);
var p:TMenuitem;
i:integer;
begin
p:=(Sender as TMenuitem).Parent;
for i:=0 to p.count-1 do
if p.items=Sender then index:=i;
^^^^^^^^^^^^^^^^^//这里纯粹是做指针的比较
end;

index就是菜单项在其父菜单下一堆菜单项里的索引号
 
你要索引也可以,就是利用tag,在创造时,将索引加在tag里,用上面给你的方法,去
访问.tag,就可以获得索引号码了
 
呵呵, menuindex不就是索引号吗? 何必这么复杂?
 
深度历险里有范例
 
cytown:你的menuindex我早就试过,建议你也去试一试。
还是DNchen和she的回答最实用,she回答了我所想要的,同时也非常感谢大家
的帮助。(可以去看看待答问题中的"割爱100分").
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
334
import
I
后退
顶部