动态创建菜单和动态关联菜单项事件
//动态创建四级菜单
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
采购开票单据审核
是