2013-07-16 31 views
7

Zastosowałem styl do aplikacji VCL w Delphi XE2, ale działa dobrze, ale wygląda na to, że menu główne zignorowało styl. Zobacz załączony obraz. Czy to normalne zachowanie? enter image description hereDelphi XE2 Style: Menu główne zignorowane

Wszelkie porady dotyczące stosowania stylu w menu głównym?

+3

See [ 'to comment'] (http://theroadtodelphi.wordpress.com/2012/03/06/adding-vcl-styles-support-to-a-tpopupmenu-in-2- lines-of-code/# comment-1756). Rodrigo sugeruje użycie 'TActionMainMenuBar' zamiast' TMainMenu'. Ale wkrótce tu lub później pojawi się odpowiedź, powiedziałbym :-) – TLama

Odpowiedz

10

Jest to ograniczenie zaczepu typu Vcl w stylu TMainMenuBarStyleHook. Normalnym sposobem rozwiązania tego typu problemu jest utworzenie i zarejestrowanie nowego haka stylu TMainMenu, ale niestety ten hak w stylu Vcl jest używany wewnętrznie przez TFormStyleHook (hak stylu formularzy), więc wymaga to utworzenia nowego formularza haczyk w stylu i to wymaga wiele pracy.

Więc moja sugestia jest zastąpienie TMainMenu dla składnika TActionMainMenuBar, który działa bardzo dobrze ze stylami vcl.

enter image description here

+0

Być może możesz użyć łatania w pamięci zamiast ponownego tworzenia haków od zera? –

+1

W tym konkretnym przypadku łatanie metody w pamięci za pomocą objazdu będzie wymagało podobnego wysiłku, niż pisanie od początku haczyka Vcl Style. – RRUZ