Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.187 Beiträge
 
Delphi 12 Athens
 
#2

Re: TreeView AdvancedCustomDrawItem - Text färben geht nicht

  Alt 4. Mai 2010, 08:02
Toll, ich fürchte ich bin mal wieder auf einen Fehler in der VCL gestoßen.

Die Fonts und andere Dinge werden nicht entsprechend recreatet (in D2006, D2009 und D2010 ... D7 konnte ich jetzt noch nicht testen)

wenn ich statt
Sender.Canvas.Font.Color := clGrayText; direkt
SetTextColor(Sender.Canvas.Handle, ColorToRGB(clGrayText)); verwende, dann geht das Umfärben.

[edit]
Jetzt hatte ich schon vieles auf die WinAPI umgestellt
und dann bin ich zufällig auf eine "bessere" Lösung gestoßen.
Ich rufe jetzt einfach ein
Sender.Canvas.Refresh; auf, bevor ich Farbe oder Style ändere.
Somit werden die Pen-, Brush-, und Color-Handles via Canvas.DeselectHandles freigegeben
und vor dem Zeichnen wieder mit den aktuellen Daten über Canvas.RequiredState neu erstellt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat