2,496
社区成员
发帖
与我相关
我的任务
分享
1.动态生成菜单项
var
FirstItem: TMenuItem;
SecondItem: TMenuItem;
begin
FirstItem := TMenuItem.Create(Self);
FirstItem.Caption := ‘FirstName’;
PopupMenu1.Items.Add(FirstItem); //添加一级分类
SecondItem := TMenuItem.Create(Self);
SecondItem.Caption := ‘SecondName’;
FirstItem.Add(SecondItem); //添加二级分类
ThirdItem := TMenuItem.Create(Self);
ThirdItem.Caption := ‘ThirdName’;
ThirdItem.OnClick := MenuClick;
SecondItem.Add(ThirdItem); //添加三级节点
end;
2.自定义动态菜单的事件
(1)定义事件函数
procedure TForm1.MenuClick(Sender: TObject);
var i: Integer;
begin
ShowMessage(TMenuItem(Sender).Caption);
end;
(2)将自定义函数赋给菜单项
FirstItem.OnClick := MenuClick; //关键这句
二、要建立菜单的树型结构数据保存机制,因为菜单是树型结构的。它保存在LISTVIEW中,就是一个树型结构。
三、还得记录激发事件的机制。每个ListVIEW叶结节点,都一个事件相对应。
这样,仅靠LIstView.SaveToFile(FileName);是不行的。要保存它的树结构,还得保存它的事件机制。
建议使用XML,或Josn保存,ListView结构与事件。
这样软件启动时,读入ListView数据同时,并动态建立菜单和事件相对应,提供思路,仅供参考。