CalColors を介して TMonthCalendar の設定を変更しようとしましたが、うまくいきません。設計時でも実行時でもありません。カレンダーは変わらず。
更新:
誰かが Quality Central でまったく同じ問題を報告したようです:
http://qc.embarcadero.com/wc/qcmain.aspx?d=53494
CalColors を介して TMonthCalendar の設定を変更しようとしましたが、うまくいきません。設計時でも実行時でもありません。カレンダーは変わらず。
更新:
誰かが Quality Central でまったく同じ問題を報告したようです:
http://qc.embarcadero.com/wc/qcmain.aspx?d=53494
デビッドが言うように、TMonthCalendar内部ではMCM_SETCOLORメッセージを使用してコントロールの色を設定しますが、視覚スタイルがアクティブな場合、このメッセージは効果がありません。回避策として、SetWindowTheme 関数を使用して、このコントロールのみのビジュアル スタイルを無効にすることができます。
このサンプルを試してください:
uses
UxTheme;
SetWindowTheme(MonthCalendar1.Handle, '', '');
MonthCalendar1.CalColors.MonthBackColor:=clWebKhaki;
MonthCalendar1.CalColors.TitleBackColor:=clWebDarkOrange;

この動作は設計どおりです。このコントロールは、Win32コントロールのラッパーです。のドキュメントをご覧くださいMCM_SETCOLOR。備考の中にこの声明があります。
ビジュアルスタイルがアクティブな場合、wParamがMCSC_BACKGROUNDの場合を除いて、このメッセージは効果がありません。
MCSC_BACKGROUNDVista以降では、に対応するを設定しようとしても効果がないと思いますCalColors.BackColor。
アプリケーションで視覚スタイルを無効にすると、で指定された設定が実際にCalColors適用されていることがわかります。