我动态创建了几个菜单,我想写它的事件,不知道怎么写?
我有一个想法不知行不行,就是当按下菜单时,判断是按下的ID,根据ID选择事件,不知行不行,如果行,怎么写,希望有一个例子。
我有一个想法不知行不行,就是当按下菜单时,判断是按下的ID,根据ID选择事件,不知行不行,如果行,怎么写,希望有一个例子。
解决方案 »
- 请教WebBrowser获得网页图片地址
- D7的ListView,当鼠标拖动一个图标到另一个位置DropDown时,怎样判断是在第几个图标旁DropDown的?
- 关于 indy控件的问题
- 简单问题,请进来~~~
- 想问一下关于combox,Listbox,treeview,dbLookupbox中的每个项的值。
- 中间件的开发
- if(full)可以表示当前窗口的全屏幕状态吗?如果用=ture语句可能吗?
- dbExpress用来连SQL Server数据库的问题,没法解决,请帮忙
- tcxtreelist 每个 node设置不同properties 有人解决吗?QQ281482913 在线等!
- 求助:着句SQL应该怎么写?
- 请问做一个房产档案管理系统,档案扫描入库,该如何设计呢??
- 考试题:这个SQL语句怎么写?
begin
if sender = ID的值 then
...
end创建动态的
procedure ButtonClick(Sender: TObject);
var
newmenu: TMainMenu;
begin
newmenu := TMainMenu.Create(Self);
newmenu.caption := '123';
end;
k:=10;for i:=0 to k do
begin
mymenu:=Tmenuitem.Create(nil);
mymenu.Caption:='aa'+inttostr(i);//
mymenu.Name:='mn'+inttostr(i);
mymenu.OnClick:=mymenuitemclick;
n1.Add(mymenu);//作为n1的子菜单
end;procedure mymenuitemclick(sender: Tobject);
var ename:string;
begin
ename:=(Sender as Tmenuitem).name; //这里你已经得到了名称 名称为mn+序号
//用copy取出序号
//case 序号
//选择要执行的过程
end;
var i:integer;
begin
i:=(sender as TMenuItem).tag;
case i of
1: ...
2: ...
3: ...
...
end;
end;
动态创建菜單項
procedure Button1Click(Sender: TObject);
var
menuitem1: TMenuItem;
begin
menuitem1 := TMenuItem.Create(Self);
menuitem1.caption := '123';
menuitem1.parent:=MainMenu1;
menuitem1.tag:=1;(或其它)
menuitem1.ONClick:= MainMenuClick;
end;
create时:
menuitem.tag:=指定特殊值;
menuitem.OnClick:=OnClick;在OnClick取出该值,可根据需要处理:i:=(sender as TMenuItem).tag;