Einzelnen Beitrag anzeigen

StefanL38

Registriert seit: 2. Nov 2013
11 Beiträge
 
#1

StringGrid erste Zeile fixiert aber JEDE Row-0-Zelle mit anderer Farbe

  Alt 15. Aug 2021, 11:29
Hallo,

also ich habe jetzt so einiges probiert um in einem StringGrid bei dem die erste Zeile (FixedRows = 1) fixiert ist
die Zellen eben dieser ersten, fixierten Reihe mit verschiedenen Farben zu versehen.

Die üblichen Vorschläge dazu sind, dass man in den Eventhandler DrawCell Bedingungen einbaut und
- von hinten durch die Brust ins Auge - das man mit einem farbigen Rechteck und evtl. den Textinhalt der Zelle
sozusagen übermalt.

Das habe ich aber für die fixierte Zelle nicht hinbekommen.
fixierte Zellen scheinen vom
    with TStringGrid(Sender).Canvas do ausgenommen zu sein.

Wenn ich in der DrawCwell-procedure FixedRow zwischen 0 um darauf malen zu können
und nach dem malen auf 1 hin- und herschalte löst das immer neue DrawCell-Ereignisse aus.

Die andere Idee ist die erste Zeile fixiert zu lassen und mir die Koordinaten zu berechnen.
Da aber der Stringgrid mehr Spalten hat als im Ausschnitt gleichzeitig darstellbar müsste ich beim Scrollen
eine Menge Positionsmanagement machen damit die farbigen Rects immer an der richtigen Stelle gemalt werden.

Die ganze Spalte einfärben möchte ich lieber nicht weil ich dann auch noch die Schriftfarbe abhängig von der Hintergrundfarbe auf eine kontrastreiche Farbe ändern müsste.

Am einfachsten wäre natürlich eine Grid-Komponente die color als property für jede einzelne Zelle hat.
Einmal Farbe setzen und gut is.
Gibt es so eine Komponente?

Wenn jemand noch eine andere Idee postet wie man das realisieren kann wäre ich sehr dankbar.

viele Grüße Stefan
  Mit Zitat antworten Zitat