根据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选择SELECT workday_series.*
FROM
(SELECT CASE CURRENT_DATE
WHEN '2017-12-14' THEN CURRENT_DATE
WHEN '2017-12-15' THEN CURRENT_DATE
ELSE '2017-12-01'
END) AS REF (date_reference)
JOIN LATERAL generate_series(ref.date_reference, '2017-12-31'::DATE, '1 day') AS workday_series(workday) ON TRUE;
,为OSX选择TMenuBar
。但是在Windows上,两个控件都在显示。
我的问题是,如何在一个表单中创建2个单独的控件?如果我将所有TMenu项目的TMenu
设置为False,则会在Windows中显示一个空白菜单栏。当我在MacOSX上设置Visible
时。
此外,如果我在Windows上使用任何样式,则在关闭表单时,仅对TMenuBar.Visible = false
发生访问冲突。
有没有更好的方法在同一个表单上设计两个,而不是在Windows中显示空白的菜单栏?
答案 0 :(得分:1)
使用TMainMenu。当您的应用程序针对Windows编译时,菜单将显示在表单的客户区域中,当您的应用程序编译为OSX时,菜单将显示在OSX菜单栏中。