Как изменить цвет ячейки 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://www.jinmeifood.com/home.php?mod=space&uid=102831 http://www.shouyou9.net/home.php?mod=space&uid=63850 http://partphoto.com/home.php?mod=space&uid=162731 http://dle1.prestashop-studio.ru/user/AlexisTresy/ http://bbs.daxgame.com/home.php?mod=space&uid=252568 http://www.xc2.info...
  • http://www.0757py.com/space-uid-538380.html http://finansy.su/user/RogelioDaw/ http://siwa8.info/home.php?mod=space&uid=71258 http://legfilm.ru/user/Georgebok/ http://mykazan.ru/dark/profile.php?id=245822 http://bbs.pcboard.cn/space-uid-24717.html https://www.igrimace.com/bbs/home.php?mod=space...
  • http://bbs.beidouauto.com/space-uid-316427.html http://dwww.shumo.com/forum/home.php?mod=space&uid=443584 http://www.myweboasis.com/messageboard/index.php?action=profile;u=500366 http://666weixiu.com/home.php?mod=space&uid=512906 http://www.shouyou45.com/space-uid-90072.html http://hhnysq....

Счетчики