【发布时间】:2017-12-14 20:06:46
【问题描述】:
根据 DocWiki:
Using Menus in a FireMonkey Application
为 OS X 和 Windows 创建菜单
为您的目标系统(OS X 与 Windows)使用正确的控件。
- 对于 Windows 应用程序,使用 TMenuBar 控件:
- 主菜单位于表单的客户区(Windows 标准)。
- 菜单项不在 OS X 菜单栏上(OS X 非标准)。
- 对于 OS X 应用程序,使用 TMainMenu 组件:
- 主菜单位于 Windows 窗体的非客户区(Windows 非标准)。
- 菜单项放置在 OS X 菜单栏上(OS X 标准)。
所以我为 Windows 选择 TMenuBar,为 OSX 选择 TMenu。但在 Windows 上,这两个控件都会显示。
我的问题是,如何在一个表单中创建 2 个单独的控件?如果我将所有 TMenu 的项目的 Visible 设置为 False,则 Windows 中会显示一个空白菜单栏。正如我在 MacOSX 上设置 TMenuBar.Visible = false 一样。
另外,如果我在 Windows 上使用任何样式,在关闭表单时,只会对 TMenu 发生访问冲突。
有没有更好的方法在同一个表单上进行设计,而不是在 Windows 中显示空白菜单栏?
【问题讨论】:
-
OSMenu 属性不再可用。我看到了大卫一世的视频,它是由 XE2 构建的。
-
我无法使用 OSx 进行测试,所以只是推测。如果您跳过
TMenuBar并同时使用TMainMenu会怎样?看起来还好吗? -
我仅使用 TMainMenu 进行了测试,在 Windows 中,如果您使用任何样式,它会引发异常,否则它工作正常。在我的应用程序中,我使用了 Stylecontrol,它在 Windows 上出现问题,但在 OSX 中没有。
-
啊,好的。很抱歉听到。
标签: windows macos delphi firemonkey