Este tema ya ha sido tratado en múltiples ocasiones en los foros.
Seguro que utilizando la búsqueda encontrarías muchas referencias. No obstante, para que veas que en Delphi 'siempre' se puede, te invito a utilizar el siguiente código :
Código Delphi
[-]procedure TForm.DBGrid1DrawColumnCell(Sender: TObject;
Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If (Column.Index = 5) and (Column.Field.Dataset.FieldbyName('SALDO').AsFloat < 0) and (not DataSet.IsEmpty) then begin
if gdFocused in State then begin
DBGrid1.Canvas.Brush.Color := clBlue DBGrid1.Canvas.Font.Color := clWhite end
else begin
DBGrid1.Canvas.Brush.Color := clRed; DBGrid1.Canvas.Font.Color := clWhite end;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Siendo Column.Index = al número de columna que quieras colorear. También podrías hacer referencia a dicha columna por el campo que se encuentra en ella.
DataSet es el DataSet asociado a tu DBGrid.
... y nunca desesperes si algo no te funciona