请问怎样获得PopupMenu每个item的索引值?

KingI 2005-11-08 07:42:10
比如这个popupmenu中有"cut, copy, paste"3个选项, 它们都是动态创建的, 那么执行OnClick后,怎样知道选的是哪个item?
...全文
175 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cncharles 2005-12-04
  • 打赏
  • 举报
回复
(Sender as TMenuItem).MenuIndex;
就可以得到Itme的Index.





***********************************
高级群号:16497064欢迎编程高手加入.
***********************************
ccrun.com 2005-12-03
  • 打赏
  • 举报
回复
晕。非要说的很详细才行吗?
在Form类中添加一行:
private
procedure MyMenuItemClick(Sender: TObject);

然后:
procedure TForm1.Button1Click(Sender: TObject);
var
miCut, miCopy, miPaste: TMenuItem;
begin
miCut := TMenuItem.Create(PopupMenu1);
miCut.Caption := '&Cut';
miCut.Tag := 1;
miCut.OnClick := MyMenuItemClick;
PopupMenu1.Items.Add(miCut);

miCopy := TMenuItem.Create(PopupMenu1);
miCopy.Caption := '©';
miCopy.Tag := 2;
miCopy.OnClick := MyMenuItemClick;
PopupMenu1.Items.Add(miCopy);

miPaste := TMenuItem.Create(PopupMenu1);
miPaste.Caption := '&Paste';
miPaste.Tag := 3;
miPaste.OnClick := MyMenuItemClick;
PopupMenu1.Items.Add(miPaste);
end;

procedure TForm1.MyMenuItemClick(Sender: TObject);
begin
case (Sender as TMenuItem).Tag of
1:
ShowMessage('Cut');
2:
ShowMessage('Copy');
3:
ShowMessage('Paste');
end;
end;
ophn8888 2005-12-03
  • 打赏
  • 举报
回复
不用这么麻烦,直接在popupmenu中item每个autocheck设置为true,每次只要遍历一下就知道了
surdon 2005-11-08
  • 打赏
  • 举报
回复
设置TAg 值 然后所有的事件都 指到

case TComponent(Sender).Tag of
0:
begin
end;
......
...
....
....
end;
KingI 2005-11-08
  • 打赏
  • 举报
回复
那要获得一个item的tag值,还得知道这是哪个item才行, 可现在就要判断是哪个item,那怎么办呢?
ccrun.com 2005-11-08
  • 打赏
  • 举报
回复
给每个Item设定不同的Tag值,然后在公用的点击事件中判断Tag。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧