Такое всегда в DrawCell выполняется, напр.
Код:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn;
State: TGridDrawState);
const
clPaleGreen = TColor($CCFFCC);
clPaleRed = TColor($CCCCFF);
begin
if Column.FieldName = 'Status' then //Удалите эту линию, если хотете закрасить целую линию
if Column.Field.Dataset.FieldbyName('Status').AsString <> 'a' then
if (gdFocused in State) {//имеет ли ячейка фокус? } then
dbgrid1.canvas.brush.color := clBlack //имеет фокус
else
dbgrid1.canvas.brush.color := clPaleGreen; //не имеет фокуса
//Теперь давайте закрасим ячейку используя стандартный метод:
dbgrid1.DefaultDrawColumnCell(rect, DataCol, Column, State)
end;
drkb