Показать сообщение отдельно
  #2  
Старый 28.06.2017, 15:24
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Такое всегда в 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
Ответить с цитированием