これが、VCL スタイルが実際に使用される準備ができていないもう 1 つの理由だと思います。
TDateTimePicker コントロールは、VCL スタイルがなくても問題なく表示されます。任意の vcl スタイルを有効にすると、次のようになります。
スタイル フックを登録することで、このコンポーネント タイプだけの vcl スタイルをオフにすることができますが、それは非常に見苦しく見えます。
これは、アップデート 4 がインストールされた Delphi XE2 上にあります。
理想的には、回避策、日時ピッカーのいくつかのプロパティ、または日時ピッカーに正しくペイントしてテーマを強制するために実行できる日時ピッカーのサブクラスがあることを願っています。
通常のコンボボックスのテーマが正しく設定されていることに注意してください。これは、想像できる最小限のサンプル プロジェクトで簡単に再現できることに注意してください。はい。それはYet Another Stylesのバグです。
更新Aero を使用しない Windows Server 2008 R2 上の Windows Common Controls バージョン (Windows サーバー コンポーネント用語では「デスクトップ エクスペリエンス」) に関連する、プラットフォーム固有の可能性があります。他の人が再現できなかったので、いくつかの異なる Windows マシンでこれを試してみることにしました。それを行った後、問題が Windows Server 2008 R2 でのみ再現されることがわかりました。一部のお客様は、Windows Server 2008 R2 を使用しています。ご存じのとおり、VCL スタイルを使用する主な理由は、Windows のテーマに関係なくアプリの外観を同じにするためです。ただし、上記の場合、テーマが正しく設定されていない DateTimePicker コントロールを除き、Windows Server 2008 R2 でのみ、アプリ全体が適切にテーマ設定されます。同じ XE2 ベースのデモ アプリが Windows 7 で正常に動作します。
動作しているシステムと動作していないシステムの両方で、SysWow64 フォルダーに ComCtl32.dll があり、バージョンは 5.82.7601.17514 です。ただし、VCL テーマがオフの場合、これらのコントロールのネイティブ レイアウトと外観は明らかに異なり、これがスキニング コードに影響し、失敗します。
Update2 : バグとして報告: QC エントリ 106783