Показать сообщение отдельно
  #3  
Старый 17.02.2010, 11:38
Аватар для movnet
movnet movnet вне форума
Начинающий
 
Регистрация: 24.07.2008
Сообщения: 127
Версия Delphi: Delphi 7
Репутация: 23
Сообщение

Здесь мы будем использовать событие "OnDrawColumnCell". Следующий пример разукрашивает ячейки колонки "Status" когда значение НЕ равно "a". Если Вы хотите закрасить целую линию, то достаточно удалить условие "If..."

Код:
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;
Ответить с цитированием