Delphi 菜单合并问题
Posted
技术标签:
【中文标题】Delphi 菜单合并问题【英文标题】:Delphi Menu Merging problem 【发布时间】:2010-09-26 06:19:01 【问题描述】:我正在尝试将两个主菜单合并在一起,但在获得正确的子项目结果时遇到问题。我在 MenuItems 上使用 GroupIndex 属性来控制合并/插入。
Menu1(带分组索引)是这样的
文件=10 打开=11 关闭=12 编辑=20 剪切=21 粘贴=22 帮助=90 关于=91Menu2 是这样的
编辑=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的mainmenu,点击下拉菜单,会向右下角移动的问题