TMontCalendar, похоже, является оберткой Windows, поэтому новые стили VCL не могут быть затронуты, знаете ли вы решение для этого?TMonthCalendar & Delphi Styles (Delphi XE2)
3
A
ответ
6
TMonthCalendar
является оболочкой для MONTHCAL_CLASS и, насколько я знаю, этот контроль не поддерживает владелец дро, но обеспечивает CalColors
свойства, которое позволяет вам установить цвета элементов календаря, но это свойство работает только тогда, когда темы не включены. Поэтому сначала вы должны вызвать функцию SetWindowTheme, чтобы отключить темы в календаре, а затем вы можете установить цвета в соответствии со стилями vcl.
Что-то вроде этого
uses
Vcl.Styles,
Vcl.Themes,
uxTheme;
Procedure SetVclStylesColorsCalendar(MonthCalendar: TMonthCalendar);
Var
LTextColor, LBackColor : TColor;
begin
uxTheme.SetWindowTheme(MonthCalendar.Handle, '', '');//disable themes in the calendar
MonthCalendar.AutoSize:=True;//remove border
//get the vcl styles colors
LTextColor:=StyleServices.GetSystemColor(clWindowText);
LBackColor:=StyleServices.GetSystemColor(clWindow);
//set the colors of the calendar
MonthCalendar.CalColors.BackColor:=LBackColor;
MonthCalendar.CalColors.MonthBackColor:=LBackColor;
MonthCalendar.CalColors.TextColor:=LTextColor;
MonthCalendar.CalColors.TitleBackColor:=LBackColor;
MonthCalendar.CalColors.TitleTextColor:=LTextColor;
MonthCalendar.CalColors.TrailingTextColor:=LTextColor;
end;
И результат будет таким
+0
OK Я был более или менее на одном и том же. Но у вас действительно более ясный и умный! – philnext
Смежные вопросы
- 1. Использование VCL Styles От Delphi XE7 до Delphi XE2
- 2. TMonthCalendar delphi - отключить кнопки
- 3. GMLib ошибка в Delphi XE2 Delphi XE2
- 4. Delphi HID в Delphi7 и Delphi XE2
- 5. Миграция с Delphi 2006 на Delphi XE2
- 6. Delphi XE2 Datasnap Callback
- 7. Стиль Delphi XE2 живопись
- 8. AnimateWindow с Delphi XE2
- 9. SafeMM для Delphi XE2
- 10. Узел Delphi XE2
- 11. UTF8Encode в Delphi XE2
- 12. TThreadedStringList в delphi xe2
- 13. FastString Альтернативы Delphi XE2
- 14. Delphi XE2 Graph slow
- 15. Delphi XE2: Rect неоднозначность?
- 16. Артефакты списка delphi XE2
- 17. Экспорт компонентов delphi xe2
- 18. DateToStr и Delphi XE2
- 19. Изменение состояния/формата TMonthCalendar в Delphi
- 20. Delphi TDateTime Смелые дни с TMonthCalendar
- 21. Delphi Multi Styles для мультиплатформов
- 22. Есть ли галерея стилей Delphi XE2?
- 23. Unicode версия для Delphi (XE2)
- 24. Delphi XE2 современный вид MainMenu
- 25. Delphi XE2 FormatDateTime pass -693594
- 26. Delphi XE2 и TurboPower Orpheus
- 27. Delphi XE2 Округление с DecimalRounding_JH1
- 28. Delphi XE2 Indy IRC Unicode
- 29. Delphi XE2 и TeeChart 9
- 30. Delphi XE2: UTF16LE -> UTF8
До RRUZ дает вам решение, которое вы можете прочитать о [VCL-стили, и владелец -draw] (http://theroadtodelphi.wordpress.com/2012/03/14/vcl-styles-and-owner-draw/). В частности [TStyleHook] (http://docwiki.embarcadero.com/Libraries/en/Vcl.Themes.TStyleHook). –
Вот кто-то, кто взломал TWebBrowser, чтобы использовать стили VCL: http://theroadtodelphi.wordpress.com/2012/03/20/delphi-vcl-styles-and-twebbrowser-source-code-released/ –
И это также может помочь http://theroadtodelphi.wordpress.com/2012/03/14/vcl-styles-and-owner-draw/ –