Диалог выбора шрифта – компонент FontDialog

Перенесите на форму компонент FontDialog.

Двойной щелчок на компоненте FontDialogвызывает диалоговое окно выбора атрибутов шрифта, в котором пользователь может выбрать имя шрифта, его стиль (начертание), размер и другие атрибуты.

Основное свойство компонента – Fontтипа TFont, в котором можно задать начальные установки атрибутов шрифта и в котором можно прочесть значения атрибутов, выбранные пользователем в процессе диалога.

Свойства MaxFontSizeиMinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. Значения по умолчанию равны нулю, и тогда ограничения на размер отсутствуют.

Свойство Device определяет, из какого списка возможных шрифтов будет предложен выбор в диалоговом окне: fdScreen –из списка экрана (по умолчанию),fdPrinter –из списка принтера,fdBoth –из обоих.

Свойство Options содержит множество опций, из которого выделим следующие:

fdAnsiOnly Отображать только множество шрифтов символов Windows, не отображать шрифтов со специальными символами
fdApplyButton Отображать в диалоге кнопку Применить независимо от того, предусмотрен ли обработчик события OnApply
fdEffects Отображать в диалоге индикаторы специальных эффектов (подчеркивание и др.) и список Цвет
fdFixedPitchOnly Отображать только шрифты с постоянной шириной сим-волов
fdForceFontExist Позволять пользователю выбирать шрифты только из списка, запрещать ему вводить другие имена
fdLimitSize Разрешить использовать свойства MaxFontSizeиMin-FontSize, ограничивающие размеры шрифта
fdNoFaceSel Открывать диалоговое окно без предварительно установ-ленного имени шрифта
fdScalableOnly Отображать только масштабируемые шрифты, удалять из списка не масштабируемые (шрифты bitmap)
fdNoSizeSel Открывать диалоговое окно без предварительно установ-ленного размера щрифта
fdNoStyleSel Открывать диалоговое окно без предварительно установ-ленного начертания шрифта
fdWysiwyg Предлагать в списке только шрифты, доступные и для эк-рана, и для принтера, удаляя из него аппаратно зависимые шрифты

По умолчанию все опции, кроме fdEffects, отключены.

Если установить опцию fdApplyButton, то при нажатии пользователем кнопки Применить возникает событие OnApply, в обработчике которого можно написать код, который применит выбранные пользователем атрибуты, не закрывая диалогового окна.

Рассмотрим примеры применения компонента FontDialog.

1.Начните новое приложение. На форме с надписью ДИАЛОГ FONTDIALOG разместите компоненты MainMenu1, Memo1, RichEdit1, FontDialog1, FontDialog2, FontDialog3.

2.Сконструируйте меню с командами Шрифт_M, Шрифт_R, Шрифт_F.

3.В обработчик команды Шрифт_M впишите

if(FontDialog1->Execute())

Memo1->Font->Assign(FontDialog1->Font);

Приведенный оператор вызывает диалог выбора атрибутов шрифта и, если пользователь произвел выбор, значения всех выбранных атрибутов, содержащиеся в свойстве FontDialog1->Font, присваиваются атрибутам окна редактирования, содержащимся в свойстве Memo1->Font. Шрифт в окне Memo1 немедленно изменится. Убедитесь в этом, запустив приложение на выполнение.

4.В компоненте FontDialog1 установим опцию fdApplyButton в true и напишем обработчик события OnApply:

Memo1->Font->Assign(FontDialog1->Font);

Выполним приложение. Теперь пользователь может наблюдать изменения в окне Memo1, нажимая в диалоговом окне кнопку Применить и не прерывая диалога. Это очень удобно, так как позволяет пользователю правильно подобрать атрибуты шрифта.

5.Используем в качестве окна редактирования RichEdit1. Теперь в диалоговом окне пользователь выбирает атрибуты шрифта для выделенного фрагмента текста или для вновь вводимого текста. Эта возможность реализуется следующим обработчиком команды Шрифт_R:

if(FontDialog2->Execute())

RichEdit1->SelAttributes->Assign(FontDialog2->Font);

Сохраните все и выполните приложение.

6.Можно разрешить пользователю изменять шрифт не только отдельных компонентов, но и всех компонентов и надписей на форме. Это осуществляется следующим обработчиком команды Шрифт_F:

if(FontDialog3->Execute())

Font->Assign(FontDialog3->Font);

В этом операторе свойство Font без ссылки на компонент подразумевает шрифт формы.

Запустите приложение на выполнение и убедитесь в работоспособности приложения.

Наши рекомендации