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"