请问怎样获得PopupMenu每个item的索引值? 比如这个popupmenu中有"cut, copy, paste"3个选项, 它们都是动态创建的, 那么执行OnClick后,怎样知道选的是哪个item? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给每个Item设定不同的Tag值,然后在公用的点击事件中判断Tag。 那要获得一个item的tag值,还得知道这是哪个item才行, 可现在就要判断是哪个item,那怎么办呢? 设置TAg 值 然后所有的事件都 指到case TComponent(Sender).Tag of 0: begin end;.................end; 不用这么麻烦,直接在popupmenu中item每个autocheck设置为true,每次只要遍历一下就知道了 晕。非要说的很详细才行吗?在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 := '&Copy'; 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; (Sender as TMenuItem).MenuIndex;就可以得到Itme的Index.*********************************** 高级群号:16497064欢迎编程高手加入.*********************************** 关于listbox用法,高手进,在线等..... ADO的联合删除? WIN98下关机画面能否DIY? 如何修改如下结构体和公用体: 关于DPR文件 如何对sqlserver里的数据库进行备份? 帮忙测试一下,各位,可能以后大家都会用到哦 我很菜 封装spcomm问题 请教如何用delphi在sql中建库??? 大哥们,帮帮小弟吧 一个按钮和菜单的问题!
0:
begin
end;
......
...
....
....
end;
在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 := '&Copy';
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;
就可以得到Itme的Index.***********************************
高级群号:16497064欢迎编程高手加入.
***********************************