Как изменить цвет ячейки TDBGrid в зависимости от текущего значения?

Для изменения цвета некоторых ячеек таблицы TDBGrid необходимо определить реакцию на событие DBGrid1DrawDataCell и проверив необходимые условия, перерисовать ячейку вручную (если в этом есть необходимость).

Все необходимые данные для отрисовки передаются в параметрах процедуры.

Пример:

Отрисовка белых букв на красном фоне если, перерисовывается поле 'First_I', ячейка не в фокусе и значение поля меньше нуля.

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
begin
 
 WITH DBGrid1.Canvas DO
 
  IF (Field.FieldName = 'First_I') AND (NOT (gdFocused in State))
  AND (Field.AsInteger < 0) THEN BEGIN
 
   Brush.Color := clRed;
   Font.Color := clWhite;
   DBGrid1.DefaultDrawDataCell(Rect, Field, State);
 
  END;
 
end;

Последние комментарии

  • http://new-rutor.org
  • Производство матрацев. Реализация текстильной продукции https://goo.gl/5WYADp - подушка детская купить оптом - любые объемы, - матрасы высочайшего качества, - самые выгодные цены https://goo.gl/5WYADp - матрацы оптом
  • Норвежский Ламинин от д-ра Эскеланда http://1541.ru в 4 раза Дешевле, чем американский Laminine LPGN. Skype evg7773 Viber +380976131437 Buy The Norwegian LAMININE are 4 times more affordable http://www.getyourboomback.com/#_l_2ps as Laminine by LPGN. Реклама в Интернете. Поисковая оптимизация....

Счетчики