Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как изменить цвет ячейки 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;
    end;
  DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay