Delphi 菜单合并问题

Posted

技术标签:

【中文标题】Delphi 菜单合并问题【英文标题】:Delphi Menu Merging problem 【发布时间】:2010-09-26 06:19:01 【问题描述】:

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

Menu1(带分组索引)是这样的

文件=10 打开=11 关闭=12 编辑=20 剪切=21 粘贴=22 帮助=90 关于=91

Menu2 是这样的

编辑=20 清除=23 小部件=30 小部件1=31 小部件2=32

我正在做

  Menu1.Merge(Menu2);

我希望组合菜单在编辑菜单中有一个新的顶部菜单“小部件”和一个新的“清除”命令。 “小部件”工作正常,但编辑菜单失去了剪切和粘贴功能,这不是我想要的。

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

【问题讨论】:

【参考方案1】:

Delphi 中的菜单合并功能与您预期的有点不同:它是非递归的(不幸的是!)。这意味着当您调用 Menu1.Merge 时,Menu1 的“编辑”菜单将被 Menu2 的替换

你有两个选择:

手动将“剪切”和“粘贴”添加到 Menu2。 编写您自己的合并函数。

前段时间我也遇到过同样的问题(见this SO question):

我最终得到的是 使用 Toolbar2000 我所有的菜单和工具栏的包。 然后就可以下载一个很不错的了 一段代码,称为 TB2Merge, 这正是你想要的。

您还可以将任何自定义编写的菜单合并代码基于 TB2Merge,我猜...

【讨论】:

谢谢,我担心这可能是答案。我去看看 Toolbar2000

以上是关于Delphi 菜单合并问题的主要内容,如果未能解决你的问题,请参考以下文章

DELPHI制作左侧导航菜单问题。

DELPHI的问题~美化菜单

Delphi自定义弹出/下拉菜单,如何?

delphi的mainmenu,点击下拉菜单,会向右下角移动的问题

Delphi IDE Menu integration - INTAServices

如何在 Delphi 中拖动菜单项?