【问题标题】:Delphi Menu Merging problemDelphi 菜单合并问题
【发布时间】: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);

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

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

【问题讨论】:

    标签: delphi vcl menu


    【解决方案1】:

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

    你有两个选择:

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

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

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

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

    【讨论】:

    • 谢谢,我担心这可能是答案。我去看看 Toolbar2000
    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 2014-08-27
    • 2016-09-12
    相关资源
    最近更新 更多