delphi创建动态菜单
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.自定义动态菜单的事件
//先自定义一个函数
procedure TForm1.MenuClick(Sender: TObject);
var
i: Integer;
begin
ShowMessage(TMenuItem(Sender).Caption);//显示当前点击的菜单项的Caption
end;
//将自定义函数赋给菜单项
FirstItem := TMenuItem.Create(Self);
FirstItem.Caption := FirstName;
FirstItem.OnClick := MenuClick; //增加这句
PopupMenu1.Items.Add(FirstItem); //添加一级分类
3.去掉菜单项Caption中的&符号
FirstItem := TMenuItem.Create(Self);
FirstItem.AutoHotkeys := maManual;//增加这句
PopupMenu1.AutoHotkeys := maManual;//或者增加这句
FirstItem.Caption := ‘FirstName’;
FirstItem.OnClick := MenuClick;
PopupMenu1.Items.Add(FirstItem); //添加一级分类