TMontCalendar scheint ein Windows-Wrapper zu sein, so dass er nicht von den neuen VCL-Styles beeinflusst werden kann, kennen Sie eine Lösung dafür?TMonthCalendar & Delphi Styles (Delphi XE2)
Antwort
Die TMonthCalendar
ist Wrapper für die MONTHCAL_CLASS und so weit ich weiß, diese Kontrolle nicht Eigentümer Unentschieden nicht unterstützt, sondern bietet die CalColors
Eigenschaft, die Sie erlaubt, die Farben der Elemente des Kalenders zu setzen, aber diese Eigenschaft funktioniert nur, wenn Die Themen sind nicht aktiviert. So müssen Sie zuerst die SetWindowTheme Funktion aufrufen, die Themen im Kalender zu deaktivieren, und dann können Sie die Farben zusammen mit den anderen vcl Stile entsprechen.
So etwas wie dieses
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;
Und das Ergebnis wird sein, diese
OK Ich war mehr oder weniger auf dem gleichen. Aber dein ist wirklich klarer und schlauer! – philnext
- 1. Namespaces in Delphi XE2
- 2. UTF8Encode in Delphi XE2
- 3. Delphi XE2 Stile Malerei
- 4. Delphi XE2 Listview Artefakte
- 5. Delphi XE2 Stil: Hauptmenü Ignoriert
- 6. Unicode-Version für Delphi (XE2)
- 7. TMonthCalendar von Delphi - deaktivieren Sie die Schaltflächen
- 8. Build-Server von Delphi XE nach Delphi XE2 migrieren
- 9. Delphi XE2, vcl Stile Fensterfenster neu erstellen
- 10. POPCNT in Delphi XE/XE2 64bit
- 11. Delphi XE2 Run mit Debugging sehr langsam
- 12. Delphi XE2 - Gebäude 64-Bit-Anwendungen
- 13. Delphi XE2 App reagiert nicht auf IPAD
- 14. Delphi 2010/XE2 MDI Beispiel - Fehlende-Code
- 15. TObject virtuelle Signaturen zu aktualisieren, bis Delphi XE2
- 16. "Klasse TADOConnection nicht gefunden." in Neuinstallation von Delphi xe2
- 17. Delphi XE2 - Wie bekomme ich IP von einer bestimmten Website?
- 18. DELPHI XE2 DLL kann nicht zur C# -Anwendung hinzugefügt werden
- 19. Delphi XE2 VCL Stile, seltsame Glitch, Fenster unsichtbar
- 20. Delphi XE2 TZipFile: Ersetzen Sie eine Datei im Zip-Archiv
- 21. Delphi XE2 VCL-Stile, die TabSheets nicht korrekt zeichnen
- 22. Kann ich die Reihenfolge der Uhren in Delphi XE2 ändern?
- 23. Irgendeine Möglichkeit, den Mime-Typ auf Delphi XE2 zu erraten?
- 24. Initialisierung von Variablen einer bestimmten Klasse in Delphi xe2
- 25. "Delphi Fundamentals" in Delphi 2009
- 26. Delphi Button mit Hintergrundbild
- 27. Delphi XE3 - Leistungsproblem mit TDataSet
- 28. Wie TStringGrid von Delphi 7 Delphi XE
- 29. Delphi-Drucktechniken
- 30. Delphi-Programmierhandbuch
Bis RRUZ Sie die Lösung haben Sie vielleicht lesen möchten [vcl-Arten-und-Inhaber -draw] (http://theroadtodelphi.wordpress.com/2012/03/14/vcl-styles-and-owner-draw/). Insbesondere [TStyleHook] (http://docwiki.embarcadero.com/Libraries/en/Vcl.Themes.TStyleHook). –
Hier ist jemand, der TWebBrowser gehackt VCL Arten zu verwenden: http://theroadtodelphi.wordpress.com/2012/03/20/delphi-vcl-styles-and-twebbrowser-source-code-released/ –
Und das kann auch helfen http://theroaddodelphi.wordpress.com/2012/03/14/vcl-styles-and-owner-draw/ –