Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прил 4.2 Системные диалоги.doc
Скачиваний:
6
Добавлен:
06.03.2016
Размер:
272.9 Кб
Скачать

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

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

Рис. 7 Диалоговое окно выбора атрибутов шрифта

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

Свойства MaxFontSizeиMinFontSizeустанавливают ограничения на максимальный и минимальный размеры шрифта. Если значения этих свойств равны 0 (по умолчанию), то никакие ограничения на размер не накладываются. Если же значения свойств заданы (обычно это целесообразно делать исходя из размеров компонента приложения, для которого выбирается шрифт), то в списке Размер диалогового окна появляются только размеры, укладывающиеся в заданный диапазон. При попытке пользователя задать недопустимый размер ему будет выдано предупреждение вида «Размер должен лежать в интервале ...» и выбор пользователя отменится.

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

Свойство Optionsсодержит множество опций:

fdAnsiOnly

Отображать только множество шрифтов символов Windows, не отображать шрифтов со специальными символами

fdApplyButton

Отображать в диалоге кнопку Применить независимо от того, предусмотрен ли обработчик события OnApply

fdEffects

Отображать в диалоге индикаторы специальных эффектов (подчеркивание и др.) и список Цвет

fdFixedPitchOnly

Отображать только шрифты с постоянной шириной символов

fdForceFontExist

Позволять пользователю выбирать шрифты только из списка, запрещать ему вводить другие имена

fdLimitSize

Разрешить использовать свойства MaxFontSizeиMinFontSize, ограничивающие размеры шрифта

fdNoFaceSel

Открывать диалоговое окно без предварительно установленного имени шрифта

fdNoOEMFonts

Удалять из списка шрифтов шрифты OEM

fdScalableOnly

Отображать только масштабируемые шрифты, удалять из списка не масштабируемые (шрифты bitmap)

fdNoSimulations

Отображать только шрифты и их начертания, напрямую поддерживаемые файлами, не отображая шрифты, в которых жирный стиль и курсив синтезируется

fdNoSizeSel

Открывать диалоговое окно без предварительно установленного размера шрифта

fdNoStyleSel

Открывать диалоговое окно без предварительно установленного начертания шрифта

fdNoVectorFonts

Удалять из списка векторные шрифты (типа Roman или Script для Windows 1.0)

fdShowHelp

Отображать в диалоговом окне кнопку Справка

fdTrueTypeOnly

Предлагать в списке только шрифты TrueType

fdWysiwyg

Предлагать в списке только шрифты, доступные и для экрана, и для принтера, удаляя из него аппаратно зависимые шрифты

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

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

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

ifFontDialog1.Executethen

Memo1.Font.Assign(FontDialog1.Font);

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

Если вы установите в компоненте FontDialog1опциюfdApplyButton, то можете написать обработчик событияOnApply:

Memo1.Font.Assign(FontDialog1.Font);

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