Delphi-Help

Главная Статьи Шрифты (FontDialog) Диалог выбора шрифта — компонент FontDialog

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

Оцените материал
(1 Голосовать)


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

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

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

Свойство 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. Тогда обработчик команды Шрифт может иметь вид:

if FontDialog1.Execute then
  Memo1.Font.Assign(FontDialog1.Font);

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

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

Memo1.Font.Assign(FontDialog1.Font);

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

Если в качестве окна редактирования в вашем приложении вы используете RichEdit, то можете предоставить пользователю выбирать атрибуты шрифта для выделенного фрагмента текста или для вновь вводимого текста. Тогда выполнение команды меню Шрифт может осуществляться операторами:

if FontDialog1.Execute then
  RichEdit1.SelAttributes.Assign(FontDialog1.Font);

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

if FontDialog1.Execute then
  Font.Assign(FontDialog1.Font);

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

Авторизация



Счетчики