Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   [FMX] TStringgrid einzelne Zellen färben (https://www.delphipraxis.net/165614-%5Bfmx%5D-tstringgrid-einzelne-zellen-faerben.html)

wurzelzwerg 9. Jan 2012 10:20


[FMX] TStringgrid einzelne Zellen färben
 
Moin,
weiss jemand wie man bei TStringGrid einzelne Zellen abhängig vom Inhalt farbig darstellen kann.
OnDrawCell wie bei VCL gibts ja hier nicht.

Delphi-Laie 9. Jan 2012 12:17

AW: [FMX] TStringlist einzelne Zellen färben
 
Zitat:

Zitat von wurzelzwerg (Beitrag 1145004)
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.

wurzelzwerg 9. Jan 2012 12:25

AW: [FMX] TStringgrid einzelne Zellen färben
 
Ja, natürlich Stringgrid. sorry.

Es gibt im FMX Stringgrid kein OnDrawCell!

Delphi-Laie 9. Jan 2012 13:37

AW: [FMX] TStringgrid einzelne Zellen färben
 
Zitat:

Zitat von wurzelzwerg (Beitrag 1145024)
Es gibt im FMX Stringgrid kein OnDrawCell!

Das erschwert die Angelegenheit m.E. deutlich.

Ich weiß nicht, was für eine Komponente "FMX Stringgrid" ist. Wenn sie vom Standardstringgrid abgeleitet ist, dann müßte doch dieses Ereignis vererbt worden sein?!

DeddyH 9. Jan 2012 13:40

AW: [FMX] TStringgrid einzelne Zellen färben
 
FMX ist FireMonkey, das hat mit der VCL nichts zu tun.

mkinzler 9. Jan 2012 13:48

AW: [FMX] TStringgrid einzelne Zellen färben
 
Nein, da FMX für Firemonkey steht. Und dieses basiert nicht auf Windowscontrols sondern auf Vektorgrafik.
Versuch es mal beim Paint-Eent der entsprechenden T(String)Column.
Der bessere Weg scheint aber der über Styles zu sein.

https://forums.embarcadero.com/threa...1733&tstart=45

http://www.raize.com/Articles/FmxStr...dCellFonts.asp

wurzelzwerg 10. Jan 2012 09:57

AW: [FMX] TStringgrid einzelne Zellen färben
 
Zitat:

Zitat von mkinzler (Beitrag 1145040)

Danke, da steht wies geht.
Nur dass das dort über ApplyStyleLookup gemacht wird versteh ich nicht.

Delphi-Quellcode:
TTextCell(StringGrid1.Columns[0].CellControlByRow(0)).FontFill.Color:= claBlue;

wo immer man das braucht reicht aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz