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