Шаг 36.
Графические инструменты в Delphi. Класс TFont

    На этом шаге мы рассмотрим состав класса TFont.

    Богатство изобразительных возможностей Windows связано с так называемым дескриптором контекста графического устройства DC (Device Context) и тремя входящими в него инструментами - шрифтом, пером и кистью. В Delphi созданы специализированные классы-надстройки, существенно упрощающие использование графических инструментов Windows: для контекста - класс TCanvas, для шрифта - TFont, для пера - ТРеn и для кисти - TBrush.

    Связанные с этими классами объекты автоматически создаются для всех видимых элементов и становятся доступны программе через свойства Canvas, Font, Pen и Brush.

    Обязательным для любого объекта, связанного с графикой в Delphi является событие:

    property OnChange: TNotifyEvent;       .

    Его обработчик вызывается всякий раз, когда изменились какие-то характеристики объекта, влияющие на его внешний вид. В стандартном GDI основой для рисования служит дескриптор контекста устройства hDC и связанные с ним шрифт, перо и кисть. В состав VCL входят объектно-ориентированные надстройки над последними, назначением которых является удобный доступ к свойствам инструментов и прозрачная для пользователя обработка всех их изменений. Начнем рассматривать три этих класса.

Класс TFont

    С помощью класса TFont создается объект-шрифт для любого графического устройства (экрана, принтера, плоттера и т. п.). В Delphi допускаются только горизонтально расположенные шрифты. В конструкторе объекта по умолчанию принимается шрифт System цвета clWindowText размера 10 пунктов. Свойства класса перечислены в таблице 1:

   
Таблица 1. Свойства класса TFont
Свойство Описание
property Color: TColor; Цвет шрифта.
property Charset: TFontCharSet; Набор символов. Для русскоязычных программ это свойство обычно имеет значение DEFAULTCHARSET или russian charset. Используйте значение OEMCHARSET для отображения текста MS-DOS (альтернативная кодировка).
property FontAdapter: TChangeNotifier; Поставляет информацию о шрифте в компоненты ActiveX.
property Handle: TFont; Дескриптор шрифта. Используется при непосредственном обращении к API-функциям Windows.
property Height: Integer; Высота шрифта в пикселях.
property Name: TFontName; Имя шрифта. По умолчанию имеет значение MS Sans Serif.
property Pitch: TFontPitch; Определяет способ расположения букв в тексте: значение fpFixed задает моноширинный текст, при котором каждая буква имеет одинаковую ширину; значение fpVariable определяет пропорциональный текст, при котором ширина буквы зависит от ее начертания; fpDefault определяет ширину, принятую для текущего шрифта.
property PixelPerInch: Integer; Определяет количество пикселей экрана на один дюйм реальной длины. Это свойство не следует изменять, так как оно используется системой для обеспечения соответствия экранного шрифта шрифту принтера.
property Size: Integer; Высота шрифта в пунктах (1/72 дюйма). Изменение этого свойства автоматически изменяет свойство Height и наоборот.
property Style: TFontStyles; Стиль шрифта. Может принимать значение как комбинация следующих признаков: fsBold (жирный), fsItalic (курсив), fsUnderline (подчеркнутый), fsStrikeOut (перечеркнутый).

    Для некоторых случаев может оказаться полезным метод:

    procedure Assign(Source: TPersistent);     ,

с помощью которого значения свойств шрифтового объекта Source присваиваются свойствам текущего шрифта. Метод не изменяет свойство PixelPerInch, поэтому его можно использовать для создания шрифта принтера по экранному шрифту и наоборот.

    На следующем шаге мы рассмотрим состав класса TPen.




Предыдущий шаг Содержание Следующий шаг