procedure MainMenu1Click(Sender: TObject); 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;
procedure MainMenuClick(Sender: TObject); 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;
delphi中预留的TAG属性是专门用来区分不同的控件用的,最好用TAG吧 create时: menuitem.tag:=指定特殊值; menuitem.OnClick:=OnClick;在OnClick取出该值,可根据需要处理:i:=(sender as TMenuItem).tag;
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;