Delphi菜单合并问题

Rod*_*ddy 3 delphi vcl menu

我正在尝试将两个主菜单合并在一起,但是在使用子项获得正确结果时遇到了问题.我在我的MenuItems上使用GroupIndex属性来控制合并/插入.

Menu1(带有groupindices)是这样的

  • 文件= 10
    • 开放= 11
    • 关闭= 12
  • 编辑= 20
    • 切= 21
    • 糊= 22
  • 帮助= 90
    • 关于= 91

Menu2是这样的

  • 编辑= 20
    • 清除= 23
  • 窗口小部件30 =
    • WIDGET1 = 31
    • WIDGET2 = 32

而我正在做

  Menu1.Merge(Menu2);
Run Code Online (Sandbox Code Playgroud)

我希望组合菜单在Edit菜单中有一个新的顶级菜单"Widgets"和一个新的"Clear"命令."小部件"工作正常,但编辑菜单丢失了剪切和粘贴,这不是我想要的.

如何停止剪切和粘贴命令消失?

onn*_*odb 6

Delphi中的菜单合并功能与您期望的有点不同:它是非递归的(不幸的是!).这意味着当您拨打电话时Menu1.Merge,Menu1的"编辑"菜单将 Menu2 取代.

您有两种选择:

  • 手动添加"剪切"和"粘贴"到Menu2.
  • 编写自己的合并功能.

我前一段时间遇到过同样的问题(见这个问题):

我最终得到的是使用 Toolbar2000 包来处理我的所有菜单和工具栏.然后,您可以下载一段非常好的代码,名为 TB2Merge,它可以完全满足您的需求.

你也可以在TB2Merge上建立任何自定义编写的菜单合并代码,我猜......