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