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); //添加一级分类

原文地址:https://www.cnblogs.com/jijm123/p/7456325.html