2013-07-16 13 views
7

Delphi XE2でVCLアプリケーションにスタイルを適用しましたが正常に動作しますが、メインメニューでスタイルが無視されたようです。添付の画像を参照してください。これは正常な動作ですか? enter image description hereDelphi XE2 Style:メインメニューが無視される

メインメニューにスタイルを適用する方法についてのアドバイスはありますか?

+3

参照[ 'このcomment'](http://theroadtodelphi.wordpress.com/2012/03/06/adding-vcl-styles-support-to-a-tpopupmenu-in-2-コード行/#コメント1756)。 Rodrigoは、 'TMainMenu'の代わりに' TActionMainMenuBar'を使うことを提案しています。しかし彼はまもなく答えが返ってくるでしょう、私はこう言っています: – TLama

答えて

10

これは、Vclスタイルフックの制限です。これは、TMainMenuBarStyleHook Vclスタイルフックの制限です。この種の問題を解決する通常の方法は、新しいTMainMenuスタイルフックを作成して登録することですが、残念ながらこのVclスタイルフックはTFormStyleHook(フォームのvclスタイルフック)によって内部的に使用されるため、新しいフォームを作成する必要がありますスタイルのフックも同様に、これは多くの作業を意味します。

私の提案は、TMainMenuの代わりにTActionMainMenuBarコンポーネントを使用しています。このコンポーネントは、vclスタイルでうまく動作します。

enter image description here

+0

おそらく、最初からフォームフックを再作成するのではなく、メモリ内のパッチを使うことができますか? –

+1

この特定のケースでは、迂回路を使用してメソッドをメモリにパッチするには、Vclスタイルフックを一から書き込むのと同じような努力が必要です。 – RRUZ

関連する問題