На этом шаге мы рассмотрим состав класса 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.