Das kannst du mit dem Eventhandler DrawColumnCell des dbgrids machen ...
Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var FieldValue:Integer;
begin
//nicht ausführen wenn die Zelle den Focus hat oder selektiert ist
if (gdSelected in State) or (gdFocused in State) then exit;
// Beispiel(nur wenn die 2. Spalte des Grids gezeichnet wird)
if column.Index=1 then
begin
try
FieldValue := Round(column.Field.Value);
// Schriftfarbe wählen
dbgrid1.canvas.Font.Color:=clBlack;
// Hintergrundfarbe abhängig vom Wert wählen
if fieldValue > 50 then
dbgrid1.canvas.Brush.Color:=clRed else
dbgrid1.canvas.Brush.Color:=clGreen;
// Zelle zeichnen
dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
except
// kein Numerischer Wert
end;
end;
end;