gpt4 book ai didi

windows - 我应该在 Firemonkey 中使用 TMainMenu 来同时支持 Windows 和 OS-X 吗?

转载 作者:可可西里 更新时间:2023-11-01 14:17:49 25 4
gpt4 key购买 nike

我正在阅读 documentation for menus in Firemonkey desktop applications .它解释了有两种完全不同的菜单组件,一种用于 Windows (TMenuBar),另一种用于 OS-X (TMainMenu)。

此外,它还解释了 TMenuBar 不会在 OS-X 上显示(非标准的 OS-X),并且 TMainMenu 被放置在非Windows 窗体的客户区(Windows 非标准)

据我了解,Firemonkey 应该是多个平台的一个代码库,但他们似乎希望我将两者分开。我可以理解菜单在两个平台上的工作方式不同,但实现两个不同的主菜单(并根据平台有条件地显示/隐藏它们)似乎是一种不必要的痛苦。我无意使用特定于任一平台的菜单的特殊功能。更不用说 TMenuBar 完全丑陋了。

由于 TMainMenu 也在 Windows 上显示,但还声称它是“非 Windows 标准”,我是否可以假设 TMainMenu 对两者都足够?或者我真的需要为 Windows 实现一个单独的 TMenuBar 吗?如果我不将它们分开会有什么影响?

我看到了this video , 但它是针对 Delphi XE2 的,我在 Delphi XE8 TMenuBar 控件中找不到这样的选项。而且,TMenuBar 非常丑陋,不像典型的菜单那样工作,就像 TMainMenu 那样。我很困惑为什么他们会建议使用这个 TMenuBar

最佳答案

如果“FireMonkey-native”(可以这么说)不是问题,则链接到的帮助页面是错误的(关于我的意思,请参见下文)。 TMainMenu 在 Windows 上不是“非标准的”——它像 VCL 等价物一样包装了 Windows native 菜单栏 API。相比之下,TMenuBar 是完全自定义的。

也就是说,自 Office 97 将近 20 年前使用自定义菜单栏以来,通常流行的是在 Windows 上使用自定义菜单栏,但是原始菜单栏 API 仍然完全受支持并被(例如)Windows 中的记事本使用10. 此外,编写一个像样的自定义菜单以便它正确地伪造一个真实的菜单 - 以及证明导致首先不使用真实菜单的附加功能 - 需要相当多的努力和详细的 API 知识。不幸的是,FMX 产品是否享受这一点可能值得怀疑,但这并不是说它在未来不会变得更好。

一个警告 - 使用 TMenuBar 的一个原因可能是您正在使用 FMX 的自定义样式选项,并希望您的菜单栏完全参与。

关于windows - 我应该在 Firemonkey 中使用 TMainMenu 来同时支持 Windows 和 OS-X 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32387425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com