Delphi菜单合并问题
我正在尝试将两个主菜单合并在一起,但在获得子项目的正确结果时遇到问题。 我在 MenuItems 上使用 GroupIndex 属性来控制合并/插入。
Menu1(带有组索引)就像这样
- File=10
- 打开=11
- 关闭=12
- 编辑=20
- 剪切=21
- 粘贴=22
- 帮助=90
- 关于=91
Menu2是这样的
- Edit=20
- 清除=23
- 小部件=30
- Widget1=31
- Widget2=32
我正在做的事情是
Menu1.Merge(Menu2);
,我希望组合菜单有一个新的顶部菜单“Widgets”,并在“编辑”菜单中有一个新的“清除”命令。 “小部件”工作正常,但编辑菜单丢失了剪切和粘贴功能,这不是我想要的。
如何阻止剪切和粘贴命令消失?
I'm trying to merge two main menus together, but am having problems getting the right result with sub-items. I'm using the GroupIndex property on my MenuItems to control the merging/insertion.
Menu1 (with groupindices) is like this
- File=10
- Open=11
- Close=12
- Edit=20
- Cut=21
- Paste=22
- Help=90
- About=91
Menu2 is like this
- Edit=20
- Clear=23
- Widgets=30
- Widget1=31
- Widget2=32
And I'm doing
Menu1.Merge(Menu2);
I want the combined menu to have a new top menu "Widgets"and a new "Clear" command in the Edit menu. "Widgets" is working fine, but the Edit Menu has lost cut and paste, which wasn't what I wanted.
How can I stop the Cut and Paste commands from disappearing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Delphi 中的菜单合并功能的工作方式与您期望的有点不同:它是非递归的(不幸的是!)。 这意味着当您调用
Menu1.Merge
时,Menu1 的“编辑”菜单将被 Menu2 的替换。您有两个选择:
我不久前遇到了同样的问题(请参阅这个问题):
我猜您还可以将任何自定义编写的菜单合并代码基于 TB2Merge...
The menu merge feature in Delphi works a bit differently than what you'd expect: it's non-recursive (unfortunately!). That means that when you call
Menu1.Merge
, Menu1's "Edit" menu gets replaced by Menu2's.You have two options:
I had the same problem a while ago (see this SO question):
You could also base any custom-written menu merge code on TB2Merge, I guess...