A ver Casimiro..., proba con este código:
Código Delphi
[-]
...
private
FCampo: string;
FCambio: Boolean;
end;
...
implementation
procedure TForm1.FormShow(Sender: TObject);
begin
FCampo:= DBGRid1.DataSource.DataSet.FieldByName('CAMPO_ASIENTO').AsString;
FCambio:= False;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (DBGrid1.SelectedField.FieldName = 'CAMPO_ASIENTO')and
(DBGrid1.SelectedField.AsString <> FCampo) then
begin
FCambio:= not FCambio;
FCampo:= DBGrid1.SelectedField.AsString;
end;
if FCambio then
DBGrid1.Canvas.Brush.Color := clCream
else
DBGrid1.Canvas.Brush.Color := clMoneyGreen;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Tendrás que hacer algunos cambios y seguro lo puedas mejorar, pero en mis pruebas funcionó...
Un saludo.