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

#Delphi

你可能感兴趣的:(delphi创建动态菜单)