隐藏TActionMainMenuBar?

10

我希望在我的应用程序中添加一个选项,以切换主菜单的显示。

即使隐藏了菜单,功能仍然可以通过工具栏等使用,因此隐藏菜单不会带来任何影响。隐藏菜单真的只是用户界面的选择。

无论如何,我的主菜单是使用TActionMenuBar和TActionManager(用于XP alphaBlend样式)设置的。

我尝试简单地设置MainMenuBar的可见属性,但导致出现此错误消息:“ActionMainMenuBar不允许隐藏。”

我认为这有点奇怪,因为存在可见属性,为什么不能真正更改它呢?

所以像往常一样,我期望这只是更改一个设置的简单情况,但不,我认为这可能需要更多的工作,我甚至不知道从哪里开始或要查找什么。

感谢您的想法和建议。


这是一个好问题。我建议您深入挖掘TActionMenuBar的VCL源代码。 - Warren P
谢谢Warren,我会看一下。我很想知道为什么有一个Visible属性,特别是如果它实际上无法使用的话。 - user741875
@Craig - 我已经回答了你的问题,你不需要去摆弄源代码等。 - Sertac Akyuz
是的,我刚看到了,谢谢Sertac。说实话,我也不知道我本来会找什么。在这种情况下,答案确实很简单 :) - user741875
2个回答

8

在将Visible设置为“false”之前,您需要将AllowHiding设置为“true”。


感谢指出AllowHiding属性,我之前没有注意到。虽然我不太明白为什么需要AllowHiding属性,它本来可以和Visible属性绑定在一起的。 - user741875
3
该属性存在是为了让您的用户能够自定义工具栏。您可能希望用户能够隐藏工具栏,但不能隐藏菜单栏。 - Sertac Akyuz
哦,我明白了,那么我想这确实有道理!谢谢Sertac,感谢你的帮助。 - user741875

0

菜单通常与主窗体相关联,因此设置Form1.Menu:= nil将隐藏它,而Form1.Menu:= MainMenu将显示它。


3
不可以通过窗体的菜单属性来设置ActionMainMenuBar。 - Sertac Akyuz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接