Не знаю, помогу ли я Вам, но я расскажу как можно изменить цвет отдельных
ячеек GBGrid без необходимости создания нового компонента. Я только что
протестировал этот код....
Я создал форму, поместил на ней компонент TTable и указал ему на таблицу
EMPLOYEE.DB в базе данных DBDEMOS. Затем я разместил на форме Datasource и
DBGrid, "соединил" их и получил живые данные.
Для демонстрации данной технологии я выбрал поле "номер служащего" в таблице
EMPLOYEE.DB и "покрасил" ячейки с нечетными числами. То есть, если число
нечетное, красим ячейку в зеленый цвет.
Единственный код расположился в обработчике события OnDrawColumnCell
компонента DBGrid и выглядел он так:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:
TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
holdColor: TColor;
begin
holdColor := DBGrid1.Canvas.Brush.Color; {сохраняем оригинальный цвет}{"раскрашиваем" ячейки только для поля EmpNo}if Column.FieldName = "EmpNo" thenif (Column.Field.AsInteger mod 2 <> 0) thenbegin
DBGrid1.Canvas.Brush.Color := clGreen;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DBGrid1.Canvas.Brush.Color := holdColor;
end;
end;
В данном случае мы использовали метод DefaultDrawColumnCell компонента
TCustomDBGrid, являющегося родителем для TDBGrid. Он раскрасил зеленым цветом
нечетные ячейки поля EmpNo.
Если Вас заинтересовала или понравилась информация по разработке на Delph - "DBGrid с цветными ячейками", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!