【问题标题】:Hide TActionMainMenuBar?隐藏 TActionMainMenuBar?
【发布时间】:2012-02-04 21:56:51
【问题描述】:

我想从我的应用程序中获得一个选项来切换主菜单的显示。

功能仍然可以通过工具栏等使用,因此隐藏菜单不会带走任何东西。隐藏菜单实际上是用户的 GUI 选择。

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

我尝试简单地设置 MainMenuBar 的 Visible 属性,这导致了以下错误消息:“ActionMainMenuBar 不允许隐藏。”

考虑到 Visible 属性存在这一事实,我觉得这有点奇怪。如果我不能真正改变它,它为什么会在那里?

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

感谢您的想法和建议。

【问题讨论】:

  • 这是个好问题。我建议你深入了解TActionMenuBar的VCL源代码。
  • 谢谢沃伦,我去看看。我很想知道为什么有一个 Visible 属性,尤其是如果它实际上不能被使用。
  • @Craig - 我已经回答了你的问题,你不需要摆弄资源等。
  • 是的,我刚刚看到感谢 Sertac,老实说,我真的不知道我会一直在寻找什么。在这种情况下,答案真的很简单:)

标签: delphi action-menu


【解决方案1】:

您需要先将AllowHiding 设置为“true”,然后再将Visible 设置为“false”。

【讨论】:

  • 感谢您指出 AllowHiding,我没有看到这个。我不明白为什么需要 AllowHiding 属性,它可能只是绑定到 Visible 属性中。
  • @Craig - 如果您的用户能够自定义工具栏,该属性就在那里。您可能希望用户能够隐藏工具栏但不能隐藏菜单栏。
  • 哦,我明白了,那么我想这确实有道理!感谢 Sertac,感谢您的帮助。
【解决方案2】:

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

【讨论】:

  • 不,您不能通过表单的 Menu 属性设置 ActionMainMenuBar。
猜你喜欢
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 2011-12-28
  • 2019-02-13
相关资源
最近更新 更多