Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: einfärben einer zeile eines dbgrids

  Alt 11. Jan 2005, 10:15
Hai,

geht ganz einfach

Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  with (Sender as TDBGrid) do
  begin
    if (gdSelected in State) then
    begin
      Canvas.Brush.Color := clblue; //Farbe für die Zelle mit dem Focus
    end
    else
    begin
      if (DataSource.DataSet.FieldByName('tag').AsInteger < 0) then
      begin
        Canvas.Brush.Color := clRed;
      end
      else
      begin
        Canvas.Brush.Color := clGreen;
      end;
    end;
    Canvas.FillRect(Rect);
    Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, Column.Field.AsString); //Denn Text in der Zelle ausgeben
  end;
end;
Dieser Code färbt im DBGrid jede Zeile rot wenn in dem Datensatz das Feld "tag" kleiner 0 ist. Ansonsten ist die Zeile grün.
Wenn die Zeile den Fokus besitzt ist sie blau.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat