Советы по Delphi

       

Рисование текста в DBGrid I


Следующий метод может быть использован в качестве обработчика события TDBGrid.OnDrawDataCell. Он демонстрирует способ рисования текста в колонке цветом, отличным от цвета текста в остальной части табличной сетки.

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);
{ ПРИМЕЧАНИЕ: Свойство DefaultDrawing компонента Grid должно быть установлено в False }
begin
{ если имя поля - "NAME" }if Field.FieldName = 'NAME' then{ изменяем цвет шрифта на красный }(Sender as TDBGrid).Canvas.Font.Color := clRed;{ выводим текст в табличной сетке }(Sender as TDBGrid).Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2,Field.AsString);end;

[000591]


Для отображения таблицы я использую DBGrid. Для некоторых полей я хочу применить другой шрифт, размер, цвет...

Вам необходимо обработать событие OnDrawDataCell, например так:



procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;Field: TField; State: TGridDrawState);beginif Field.FieldName = 'SERIAL' thenif (Field as TStringField).Value = 'НЕИЗВЕСТНО' thenwith (Sender as TDBGrid).Canvas do beginBrush.Color := clRed;Font.Style := [fsItalic];Font.Color := clAqua;FillRect(Rect);TextOut(Rect.Left, Rect.Top, Field.AsString);end;end;

....BTW, выключите DefaultDrawing.

Eryk [000673]



Содержание раздела