Как изменить цвет ячейки 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;

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

  • как называется рыжая панда >>>>> https://youtu.be/sUHmEL93qhQ
  • Отправка сообщений в более чем 450 000 форм обратной связи (только Россия и СНГ) за 3000р Ваше сообщение получат администраторы сайтов Вы можете прорекламировать Ваши товары и услуги! Ваше письмо будет прочитано. Заявки и вопросы писать только сюда: form2017form @ yandex.ru ( убрать пробелы )
  • Is this website alive? Or....NOT?! Thanks. I Need XEvil. XEvil 4.0 can break Google ReCaptcha-2!

Счетчики