Для задания свойства шрифта можно щелкнуть по кнопке (рисунок 1):
Рис.1. Кнопка вывода окна для задания характеристик шрифта
и появится окно, где можно задать характеристики шрифта (рисунок 2).
Рис.2. Окно задания характеристик шрифта
Однако есть возможность задавать программно характеристики шрифта. Для этого нужно использовать свойства класса TFont.
Тип TFont является сложным типом. Для того, чтобы увидеть его подсвойства, достаточно щелкнуть в Object Inspector по символу "+", расположенному слева от названия свойства. Он превратится в символ "-", и мы увидим следующие подсвойства (рисунок 3):
Рис.3. Список подсвойств класса TFont
В Delphi предопределено много констант, соответствующих стандартным наборам символов. Приведем некоторые из них (таблица 1):
Константа | Значение | Описание |
---|---|---|
ANSI_CHARSET | 0 | Символы ANSI. |
DEFAULT_CHARSET | 1 | Задается по умолчанию. Шрифт выбирается только по его имени Name и размеру Size. Если описанный шрифт недоступен в системе, то Windows заменит его другим шрифтом. |
SYMBOL_CHARSET | 2 | Стандартный набор символов. |
MAC_CHARSET | 77 | Символы Macintosh. Недоступны для NT 3.51. |
GREEK_CHARSET | 161 | Греческие символы. Недоступны для NT 3.51. |
RUSSIAN_CHARSET | 204 | Символы кириллицы. Недоступны для NT 3.51. |
EASTEUROPE_CHARSET | 238 | Включает диакритические знаки (знаки добавляемые к буквам и характеризующие их произношение) для восточно-европейских языков. Недоступны для NT 3.51. |
OEM_CHARSET | 255 | Зависит от кодовой таблицы операционной системы. |
По умолчанию задается значение этого подсвойства, равное DEFAULT_CHARSET. Для
имен шрифтов, принятых в Delphi по умолчанию, это обычно нормальный вариант. Но
в ряде случаев полезно для отображения русских текстов с другими шрифтами заменить
это значение на RUSSIAN_CHARSET. Это позволит отобразить символы кириллицы для
тех шрифтов, для которых при DEFAULT_CHARSET символы кириллицы не отображаются
нормально;
Каждый вид шрифта имеет соответствующий способ определения ширины символов. Есть шрифты с одинаковой шириной всех символов. Есть шрифты, в которых разные символы имеют разную длину. Шрифты с постоянной шириной используются для отображения текстов программ, так как в них удобно делать фиксированные отступы. Но шрифты с различной шириной символов более компактны.
Установки значений fpFixed или fpVariable заставляет систему искать наилучший
способ удовлетворить всем заданным характеристикам шрифта. Иногда это может привести
к замене шрифта на шрифт другого, близкого вида. Но иногда вообще может не повлиять
на шрифт. Все зависит от конкретного шрифта, или даже версии этого шрифта;
Проиллюстрируем использование некоторых из этих подсвойств на конкретном примере. Расположим на форме два компонента TListBox, в каждом из которых, используя свойство Items, наберем указанные значения (рисунок 4):
Рис.4. Внешний вид проекта
В обработчике OnClick кнопки (компонент TButton) разместим следующие операторы:
procedure TForm1.Button1Click(Sender: TObject); begin case ListBox1.ItemIndex of //Задание цвета 0: Form1.Font.Color:=clRed; 1: Form1.Font.Color:=clGreen; 2: Form1.Font.Color:=clBlue; end; Form1.Font.Style:=[]; //Очистить от ранее заданных значений case ListBox2.ItemIndex of //Начертание // полужирный 0: Form1.Font.Style:=Form1.Font.Style+[fsBold]; // курсив 1: Form1.Font.Style:=Form1.Font.Style+[fsItalic]; // подчеркнутый 2: Form1.Font.Style:=Form1.Font.Style+[fsUnderline]; // перечеркнутый 3: Form1.Font.Style:=Form1.Font.Style+[fsStrikeOut]; end; end;
Обратите внимание на то, что подсвойство Style является множеством, поэтому при работе с ним использованы конструкции, предназначение для работы с множествами.