Abwechselnd farbige Zeilen im DBGrid
-
Hallo!
Ich habe folgende vielleicht einfache Frage und habe hier im Forum noch keine Lösung dazu gefunden:
Ich möchte in meinem DBGrid farbige Zeilen verwenden, also z.B.
1. Zeile gelb
2. Zeile silber
3. Zeile wieder gelb u.s.w.Ich habe im Forum schon nachgelesen, wie ich eine selektierte Zeile farbig gestalten kann, aber noch nicht, wie ich das bei Zeilen abwechselnd tue. Bin etwas ratlos, da bei der Methode DrawColumnCell eben keine Zeilennummer vorhanden ist wie z.B. bei StringGrid.
Danke
Tom
-
-
Wenn ich das Beispiel richtig verstehe, ändert sich die Farbe je nach Zustand des Datensatzes, also wenn er eingefügt bzw. geändert wurde.
Wie kann ich jedoch die Farbe ändern, ohne daß der Zustand des Datensatzes sich ändert?
Ich möchte also, daß, wenn ich das DBGrid zum erstenmal aufrufe, schon gleich der erste Datensatz gelb, der zweite silber, der dritte wieder gelb angezeigt wird. Bis zu diesem Zeitpunkt hat noch keine Veränderung an der Datenmenge stattgefunden.Bin vielleicht nur etwas schwer von Begriff

-
Die Bedingung, was wann wie gefärbt werden soll musst du natürlich selbst festlegen. Das mit dem Einfügen, Ändern etc. sind nur Beispielbedingungen.
Im Prinzip funktioniert das alles genau wie beim StringGrid, nur dass du die Koordinaten nicht vom Grid sondern von dem die Daten liefernden DataSet bekommst. Hier wird z.B. jede zweite Zeile rot gefärbt:
void __fastcall TFormFacts::DBGrid1DrawColumnCell(TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State) { if (DBGrid1->DataSource->DataSet->RecNo % 2) DBGrid1->Canvas->Brush->Color = clRed; DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State); }
-
Tom1966 schrieb:
Wie kann ich jedoch die Farbe ändern, ohne daß der Zustand des Datensatzes sich ändert?
sorry, ich bin davon ausgegangen, dass du das selbst auf die Kette bekommst.
Zumal du auch schon DrawColumnCell erwähnt hattest.
-
Andreas W. schrieb:
sorry, ich bin davon ausgegangen, dass du das selbst auf die Kette bekommst.
Hatte einen kleine Blackout, sorry!
Danke für Eure Hilfe!
-
Guten Tag,
es sieht schön und übersichtlich aus mit eine Zeile FarbeEins und nächste Zeile mit OriginalFarbe im DBGrid, aber wenn MultiSelect eigeschaltet ist, und mit der (linkeTaste Maus +StrgTaste) mehrere Zeilen selectiert wird die Markierung nur in die Originalfarbe dargestellt und nicht in die FarbeEins, gibt es eine Lösung dafür?
danke
C++_Hoby