![]() |
AW: DBGrid1 färben
Den dieser Callback wird ja für jede Zelle aufgerufen un du überprüft/zeichnest nur bei Zellen einer Spalte
|
AW: DBGrid1 färben
Delphi-Quellcode:
so geht es ! Danke !
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if DBGrid1.DataSource.DataSet.FieldByName('STATUS').Value = 'Erfasst' then begin DBGrid1.Canvas.Brush.Color := clYellow; DBGrid1.Canvas.Font.Color := clred end else begin DBGrid1.Canvas.Brush.Color := clWhite; DBGrid1.Canvas.Font.Color := clblack end; DBGRid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; wie gehe ich weiter vor, wenn ein zweiter wert 'beendet ' in grün angezeigt werden soll? |
AW: DBGrid1 färben
Einfach eine else if-Bedingung dazwischensetzen. In dem Fall sollte man die Zwischenavariable aber wohl besser wieder einführen, die ich weggekürzt hatte.
Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState); var Wert: string; begin Wert := DBGrid1.DataSource.DataSet.FieldByName('STATUS').Value; if Wert = 'Erfasst' then begin DBGrid1.Canvas.Brush.Color := clYellow; DBGrid1.Canvas.Font.Color := clred; end else if Wert = 'beendet' then begin DBGrid1.Canvas.Brush.Color := clWhite; DBGrid1.Canvas.Font.Color := clGreen; end else begin DBGrid1.Canvas.Brush.Color := clWhite; DBGrid1.Canvas.Font.Color := clblack; end; DBGRid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz