我在窗体里每单击一次Button1就动态生成一个菜单项,代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
NewItem: TMenuItem;
begin
NewItem := TMenuItem.Create(PopupMenu1);
PopupMenu1.Items.Add(NewItem);
NewItem.Caption := 'Menu Item ' + IntToStr(PopupMenu1.Items.Count-1);
NewItem.Name := 'm' + inttostr(PopupMenu1.Items.Count-1);
NewItem.Tag := PopupMenu1.Items.Count-1;
NewItem.OnClick := myClick;
end;
但不知在我定义的myClick事件中如何判断是哪个菜单项被按下?
procedure TForm1.myClick(Sender: TObject);
begin
end;
请各位高手指教。
procedure TForm1.Button1Click(Sender: TObject);
var
NewItem: TMenuItem;
begin
NewItem := TMenuItem.Create(PopupMenu1);
PopupMenu1.Items.Add(NewItem);
NewItem.Caption := 'Menu Item ' + IntToStr(PopupMenu1.Items.Count-1);
NewItem.Name := 'm' + inttostr(PopupMenu1.Items.Count-1);
NewItem.Tag := PopupMenu1.Items.Count-1;
NewItem.OnClick := myClick;
end;
但不知在我定义的myClick事件中如何判断是哪个菜单项被按下?
procedure TForm1.myClick(Sender: TObject);
begin
end;
请各位高手指教。
解决方案 »
- ApplicationEvents的OnMinimize事件响应的是那个消息
- 怎样在DbGridEh中的限制小数的位数?
- 散分+免费电影网站
- 有点难度!如果通过insert 的SQL语句将DBImage中的图插到SQL2000的image类型的字段中?
- 请帮我看看
- 报表打印。。。。。
- 我在这摸块里面做查询指定货物在日期段内的出入库情况,
- 怎样拦截FORM的最小化事件?
- 怎样创建一个RC文件??=====我是新手!
- 我的DBComboBox为何不能响应键盘事件??(我并没有编写“keypress”事件)
- 如何用DBGrid实时显示酒店房态??
- 着急——在ACCESS数据库中怎么获得“date()”的“季度”???
begin
if Uppercase(trim(TMenuItem(Sender).Caption)) = Uppercase('m1') then
showmessage('这是第一个菜单项')
end;
begin
if Uppercase(trim(TMenuItem(Sender).Caption)) = Uppercase('m1') then
showmessage('这是第一个菜单项')
end;
是这个吧:
if Uppercase(trim(TMenuItem(Sender).Name)) = Uppercase('m1') then
showmessage('这是第一个菜单项')
begin
(TMemuItem(Sender).Tag)?
end;procedure TForm1.Button1Click(Sender: TObject);
var
NewItem: TMenuItem;
begin
NewItem := TMenuItem.Create(PopupMenu1);
PopupMenu1.Items.Add(NewItem);
NewItem.Caption := 'Menu Item ' + IntToStr(PopupMenu1.Items.Count-1);
NewItem.Name := 'm' + inttostr(PopupMenu1.Items.Count-1);
NewItem.Tag := PopupMenu1.Items.Count-1;
NewItem.OnClick := myClick;
end;----------------------------------------------------------
事太多、心太乱
因为提问者动态生成了多个菜单项,而“ if Uppercase(trim(TMenuItem(Sender).Caption)) = Uppercase('m1') then
showmessage('这是第一个菜单项')
end;
是这个吧:
if Uppercase(trim(TMenuItem(Sender).Name)) = Uppercase('m1') then
showmessage('这是第一个菜单项')”
中的Caption或Name属性事先都不确定。所以以上答案均是错误的!
不过如果menuitem能有selected属性就好了。