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

Previous  Top  Next

    
 

 

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

 

Code:

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;

 

 

©Drkb::03074

       

Взято с http://delphiworld.narod.ru


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

 

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

 

Code:

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const

Rect: TRect; Field: TField; State: TGridDrawState);

begin

if Field.FieldName = 'SERIAL' then

   if (Field as TStringField).Value = 'НЕИЗВЕСТНО' then

     with (Sender as TDBGrid).Canvas do

     begin

       Brush.Color := clRed;

       Font.Style := [fsItalic];

       Font.Color := clAqua;

       FillRect(Rect);

       TextOut(Rect.Left, Rect.Top, Field.AsString);

     end;

end;

 

 

 

 

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

 

©Drkb::03075

       

Взято с http://delphiworld.narod.ru