动态创建菜单和动态关联菜单项事件
//动态创建四级菜单
var
MainMenu:TMainMenu;
SubMenu,SubMenu2,submenu3,submenu4:TMenuItem;
MainMenu:=TMainMenu.Create(self);
MainMenu.AutoHotkeys:=maManual;
SubMenu:=TMenuItem.Create(self);
SubMenu.Caption:='一级菜单';
MainMenu.Items.Add(SubMenu);
SubMenu2:=TMenuItem.Create(self);
SubMenu2.Caption:='二级菜单';
SubMenu.Add(SubMenu2);
submenu3:=TMenuItem.Create(self);
submenu3.Caption:='三级菜单';
submenu2.Add(submenu3);
submenu4:=TMenuItem.Create(self);
submenu4.Caption:='四级菜单';
submenu3.Add(submenu4);
//动态给四级菜单关联事件
procedure LinkEvent;
var
i,j,k,l,t:Integer;
begin
for i:=0 to MainMenu.Items.Count-1 do
begin
for t:=Low(ss) to High(ss) do
if MainMenu.Items[i].Caption=ss[t] then
MainMenu.Items[i].OnClick:=MenuItemClick;
for j:=0 to MainMenu.Items[i].Count-1 do
begin
for t:=Low(ss) to High(ss) do
if MainMenu.Items[i].Items[j].Caption=ss[t] then
MainMenu.Items[i].Items[j].OnClick:=MenuItemClick;
for k:=0 to MainMenu.Items[i].Items[j].Count-1 do
begin
for t:=Low(ss) to High(ss) do
if MainMenu.Items[i].Items[j].Items[k].Caption=ss[t] then
MainMenu.Items[i].Items[j].Items[k].OnClick:=MenuItemClick;
for l:=0 to MainMenu.Items[i].Items[j].Items[k].Count-1 do
for t:=Low(ss) to High(ss) do
if MainMenu.Items[i].Items[j].Items[k].Items[l].Caption=ss[t] then
MainMenu.Items[i].Items[j].Items[k].Items[l].OnClick:=MenuItemClick;
end;
end;
end;
end;
//动态菜单数据表设计
菜单树
层次序列号 功能编号 功能名称 标识 是否激活
ccxlh gnbh gnmch biaoshi beactive
00 采购管理 是
0000 合同管理 是
000000 HET001A 合同登记 是
000001 HET001B 合同审核 是
000002 HTWENDANG 合同文档管理 是
0001 采购订单 是
000100 JHF110A 采购订单 是
000101 JHF110C 采购订单删除 是
000102 JHF110B 采购订单审核 是
0002 采购入库业务 是
000200 JHG112A 采购开票单据 是
000201 JHG112B 采购开票单据审核 是