2013-07-16 63 views
7

我已經在Delphi XE2中的VCL應用程序中應用了一種風格,但它工作正常,但似乎主菜單已忽略風格。見附圖。這是一個正常的行爲? enter image description hereDelphi XE2風格:主菜單忽略

有關如何將樣式應用到主菜單的任何建議?

+3

見['此comment'](http://theroadtodelphi.wordpress.com/2012/03/06/adding-vcl-styles-support-to-a-tpopupmenu-in-2-線-的代碼/#註釋-1756)。羅德里格建議那裏使用'TActionMainMenuBar'而不是'TMainMenu'。但他會很快或將來在這裏的答案,我會說:-) – TLama

回答

10

這是TMainMenuBarStyleHook Vcl Style鉤子的限制。解決此類問題的常規方法是創建並註冊新的TMainMenu樣式鉤子,但不幸的是,此Vcl樣式鉤子在TFormStyleHook(表單的vcl樣式鉤子)內部使用,因此這需要您創建一個新表單風格的鉤子,這意味着很多工作。

所以,我的建議是取代TMainMenuTActionMainMenuBar組件,它與vcl樣式非常協調。

enter image description here

+0

也許你可以使用內存補丁,而不是從頭重新創建窗體鉤子? –

+1

在這種特殊情況下,使用繞行修補內存中的方法需要與從頭開始編寫Vcl Style Hook相似的工作。 – RRUZ