Moin moin,
ich habe ein DBGrid das über ein DataSource mit einer IBDataSet verbunden ist. Nun möchte ich, wenn ein bestimmer Wert in der Datenbank vorliegt, die ganze Zeile in einer anderen Farbe darstellen (nur den Text);
Ich habe dazu folgenden Code aus diversen Beispielen probiert, aber es funktioniert irgendwie nicht
Es wird nicht die ganze Zeile gefärbt, sondern nur einzelne Spalten.
Es wird immer um eine Zeile versetzt gefärbt, d.h. der nachfolgende Datensatz wird teilweise gefärbt.
Was mache ich falsch ???
ich habe ein DBGrid das über ein DataSource mit einer IBDataSet verbunden ist. Nun möchte ich, wenn ein bestimmer Wert in der Datenbank vorliegt, die ganze Zeile in einer anderen Farbe darstellen (nur den Text);
Ich habe dazu folgenden Code aus diversen Beispielen probiert, aber es funktioniert irgendwie nicht
Code:
//--------------------------------------------------------------------------- // Gelesene Mails werden in Silber dargestellt // Mails die eine Lesebestätigung brauchen werden in Rot dargestellt //--------------------------------------------------------------------------- void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State) { if (IBDataSet1->FieldByName("GELESEN")->AsInteger == 1) Column->Font->Color = clSilver; else Column->Font->Color = clBlack; if (IBDataSet1->FieldByName("LESEBESTAETIGUNG")->AsInteger == 1 && IBDataSet1->FieldByName("GELESEN")->AsInteger == 0) Column->Font->Color = clRed; DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State); }
Es wird immer um eine Zeile versetzt gefärbt, d.h. der nachfolgende Datensatz wird teilweise gefärbt.
Was mache ich falsch ???
Comment