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