Einzelnen Beitrag anzeigen

Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#4

AW: DBGrid Zeilen farbig

  Alt 23. Apr 2012, 00:05
Kann ich nicht irgendwie aus DrawColumnCell in den vorhergehenden Datensatz schauen?
Nein. Die Komponente merkt sich nicht, was in der Zelle steht.

Du musst die Lookupliste nach jedem Filtern neu erstellen.
Erstelle eine Liste der eindeutigen Datumswerte, d.h. jeder Datumswert kommt nur 1x vor.
Im DrawDataCell-Ereignis steht dann:
Delphi-Quellcode:
procedure TMyForm.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
  if Field is MyDateField then
    If Odd (MyDateList.IndexOf(Field.DisplayText)) Then
      (Sender as TDBGrid).Canvas := ThisColor
    Else
      (Sender as TDBGrid).Canvas := ThatColor;
  (Sender as TDBGrid).DefaultDrawDataCell(Rect,Field,State);
end;
Wenn Du oft mit Grids und Datenmengen arbeitest, solltest Du dir eine Komponente zulegen, die dir bei deinen speziellen Bedürfnissen hilft.
Wir verwenden DevExpress, damit kann man eigentlich so gut wie alles machen.

Geändert von Iwo Asnet (23. Apr 2012 um 00:07 Uhr)
  Mit Zitat antworten Zitat