Изменение стиля шрифта в ячейках DBGrid
procedure TForm1.DBGrid1DrawDataCell( Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin // Если CustNo записи - 4711 рисуем полную строку с // линией через нее. (Установить стиль шрифта зачеркрутый) if (Sender as TDBGrid).DataSource.DataSet.FieldByName('CustNo').AsString = '4711' then with (Sender as TDBGrid).Canvas do begin FillRect(Rect); // Установить стиль шрифта в StrikeOut Font.Style := Font.Style + [fsStrikeOut]; // Рисуем ячейку, выровненную справа для floats + offset if (Field.DataType = ftFloat) then TextOut(Rect.Right-TextWidth(Field.AsString)-3, Rect.Top+3, Field.AsString) // Иначе, выравниваем слева + offset else TextOut(Rect.Left+2,Rect.Top+3,Field.AsString); end; end;
Примечание: код использует DBDemos, таблицу CUSTOMER.DB
, TDBGrid, TDataSource и TTable.
Комментарии