DBGrid Zeileneinfärben?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
TT73GP7
Beiträge: 238
Registriert: Di 29. Mär 2016, 20:45

DBGrid Zeileneinfärben?

Beitrag von TT73GP7 »

Hallo zusammen,

ich habe ein DBGrid und ich würde gerne wenn ein Gewisser Wert in einer Spalte übersteigt das die ganze Zeile Grün wird.

Wie muss ich das denn machen?
eine Schleife durchlaufen lassen und schauen ob bei irgendwas das und das drin steht und dann mit der RowNumber arbeiten?

hab mich da irgendwie etwas festgebissen :(

Viele Grüße
:)

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: DBGrid Zeileneinfärben?

Beitrag von Michl »

Du kannst einfach im OnPrepareCanvas vom DBGrid die Hintergrundfarbe setzen. Z.B. wird so in einem Grid, bei fortlaufender ID, jede vierte Zeile rot angezeigt:

Code: Alles auswählen

procedure TForm1.DBGrid1PrepareCanvas(sender: TObject;
  DataCol: Integer; Column: TColumn; AState: TGridDrawState);
begin
  if gdSelected in AState then Exit; // bei selektierten Zeilen Hintergrundfarbe nicht ändern
  if SQLQuery1.FieldByName('ID').AsInteger mod 4 = 0 then
    DBGrid1.Canvas.Brush.Color := clRed
  else
    DBGrid1.Canvas.Brush.Color := clDefault;
end;  

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Antworten