Einzelnen Beitrag anzeigen

Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: [FMX] TStringlist einzelne Zellen färben

  Alt 9. Jan 2012, 12:17
Moin,
weiss jemand wie man bei TStringGrid einzelne Zellen abhängig vom Inhalt farbig darstellen kann.
OnDrawCell wie bei VCL gibts ja hier nicht.
Den Text oder den Hintergrund oder beides?

Außerdem ist Dein Thema falsch: Es geht hier um die Farben eines Stringgrids und nicht die einer Stringliste. Stringlisten sind keine visuellen Elemene und mithin auch nicht einfärbbar.

Edit: Die Textfärbung löste ich folgendermaßen: Ein zweidimensionales Array (hier: "Farbe") speichert die Farben, sozusagen im Hintergrund. In der OnDrawCell-Prozedur des Stringgrids (keine Ahnung, wann die immer aufgerufen wird, aber diese Ereignisbehandlungsprozedur gibt es durchaus) steht:

Delphi-Quellcode:
StringGrid1.canvas.Font.Color:=Farbe[ACol,ARow];
StringGrid1.Canvas.TextRect(Rect,Rect.Left{+2},Rect.Top{+2},StringGrid1.cells[ACol,ARow])
, und das funktioniert auch. In meinen Augen ist die Stringgridfärbung eine mittlere Katastrophe. Dermaßen umständlich. Warum man nicht einzelne Zellen direkt färben kann (über deren Eigenschaft), ist mir bis heute schleierhaft.

Geändert von Delphi-Laie ( 9. Jan 2012 um 12:25 Uhr)
  Mit Zitat antworten Zitat