簡體   English   中英

我應該在Firemonkey中使用TMainMenu來支持Windows和OS-X嗎?

[英]Should I use TMainMenu in Firemonkey to support both Windows and OS-X?

我正在閱讀Firemonkey桌面應用程序中的菜單文檔 它解釋了有兩個完全不同的菜單組件,一個用於Windows( TMenuBar ),另一個用於OS-X( TMainMenu )。

此外,它還解釋了TMenuBar不顯示在OS-X上(非標准的OS-X),並且TMainMenu放在Windows窗體的非客戶區域中(非標准的Windows)

我的理解是,Firemonkey應該是多個平台的一個代碼庫,但似乎他們希望我將兩者分開。 我可以理解兩個平台上的菜單工作方式不同,但實現兩個不同的主菜單(並根據平台有條件地顯示/隱藏它們)似乎是不必要的痛苦。 我無意使用特定於任一平台的菜單的特殊功能。 更不用說TMenuBar是完全丑陋的。

既然TMainMenu也在Windows上顯示,但也聲稱它是“非標准的Windows”,我可以假設TMainMenu對兩者都足夠嗎? 或者我真的需要為Windows實現單獨的TMenuBar嗎? 如果我不將它們分開,會有什么影響?

我看過這個視頻 ,但這是Delphi XE2,我在Delphi XE8 TMenuBar控件中找不到這樣的選項。 同樣, TMenuBar非常難看,並且不像TMainMenu那樣像典型菜單那樣工作。 我很困惑為什么他們會建議使用這個TMenuBar

鏈接到的幫助頁面是錯誤的,如果“FireMonkey-native”(可以這么說)不是一個問題(我的意思是,請參見下文)。 TMainMenu在Windows上不是“非標准” - 它包裝了Windows本機菜單欄API,就像VCL等價物一樣。 相比之下,TMenuBar完全是定制的。

也就是說,一般來說,自從Office 97在大約二十年前就這樣做以來,時尚一直是在Windows上使用自定義菜單欄,但原始菜單欄API仍然完全支持並由Windows 10中的(例如)記事本使用。 ,編寫一個體面的自定義菜單,以便它正確地偽造一個真實的菜單 - 以及證明導致不首先使用真實的附加功能 - 需要相當多的努力和詳細的API知識。 不幸的是,人們可能懷疑FMX產品是否享有此功能,這並不是說它將來不會好轉。

一個警告 - 使用TMenuBar的一個原因可能是您使用FMX的自定義樣式選項,並希望您的菜單欄完全參與。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM