Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

FontDialog - диалог выбора шрифта

CuBook45

Компонент FontDialog вызывает диалоговое окно выбора атрибутов шрифта. В нем пользователь может выбрать имя шрифта, его стиль (начертание), размер и другие атрибуты.
 
Основное свойство компонента - Font типа TFont, в котором можете задать при желании начальные установки атрибутов шрифта и в котором вы можете прочесть значения атрибутов, выбранные пользователем в процессе диалога.
 
Свойства MaxFontSize и MinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. Если значения этих свойств равны 0 (по умолчанию), то никакие ограничения на размер не накладываются. Если же значения свойств заданы (обычно это целесообразно делать исходя из размеров компонента приложения, для которого выбирается шрифт), то в списке Размер диалогового окна появляются только размеры, укладывающиеся в заданный диапазон. При попытке пользователя задать недопустимый размер ему будет выдано предупреждение вида «Размер должен лежать в интервале ...» и выбор пользователя отменится. Правда, это срабатывает не на всех версиях Windows. Свойства MaxFontSize и MinFontSize действуют только при включенной опции fdLimitSize.
 
Свойство Device определяет, из какого списка возможных шрифтов будет предложен выбор в диалоговом окне: fdScreen - из списка экрана (по умолчанию), fdPrinter - из списка принтера, fdBoth - из обоих.
 
Свойство Options содержит множество опций:
fdAnsiOnly Отображать только множество шрифтов символов Windows, не отображать шрифтов со специальными символами.
fdApplyButton Отображать в диалоге кнопку Применить независимо от того, предусмотрен ли обработчик события OnApply.
fdEffects Отображать в диалоге индикаторы специальных эффектов (подчеркивание и др.) и список Цвет.
fdFixedPitchOnly Отображать только шрифты с постоянной шириной символов.
fdForceFontExist Позволять пользователю выбирать шрифты только из списка, запрещать ему вводить другие имена.
fdLimitSize Разрешить использовать свойства MaxFontSize и MinFontSize, ограничивающие размеры шрифта.
fdNoFaceSel Открывать диалоговое окно без предварительно установленного имени шрифта.
fdNoOEMFonts Удалять из списка шрифтов шрифты OEM.
fdScalableOnly Отображать только масштабируемые шрифты, удалять из списка не масштабируемые (шрифты bitmap).
fdNoSim illations Отображать только шрифты и их начертания, напрямую поддерживаемые файлами, не отображая шрифты, в которых жирный стиль и курсив синтезируется.
fdNoSizeSel Открывать диалоговое окно без предварительно установленного размера шрифта.
fdNoStyleSel Открывать диалоговое окно без предварительно установленного начертания шрифта.
fdNoVectorFonts Удалять из списка векторные шрифты (типа Roman или Script для Windows 1.0).
fdShowHelp Отображать в диалоговом окне кнопку Справка.
fdTrueTypeOnly Предлагать в списке только шрифты TrueType.
fd Wysiwyg Предлагать в списке только шрифты, доступные и для экрана, и для принтера, удаляя из него аппаратно зависимые шрифты.
 
По умолчанию все эти опции, кроме fdEffects, отключены.
 
Если установить опцию fdApplyButton, то при нажатии пользователем кнопки Применить возникает событие OnApply, в обработчике которого вы можете написать код, который применит выбранные пользователем атрибуты, не закрывая диалогового окна.
 
Приведем примеры применения компонента FontDialog. Пусть ваше приложение включает окно редактирования Memo1, шрифт в котором пользователь может выбирать командой меню Шрифт. Вы ввели в приложение компонент FontDialog, имя которого по умолчанию FontDialog1. Тогда обработчик команды Шрифт может иметь вид:
if(FontDialog1->Execute())
Memo1->Font->Assign(FontDialog1->Font);
Приведенный оператор вызывает диалог выбора атрибутов шрифта и, если пользователь произвел выбор, то значения всех выбранных атрибутов, содержащиеся в свойстве FontDialog1->Font, присваиваются атрибутам окна редактирования, содержащимся в свойстве Memo1->Font. Шрифт в окне редактирования немедленно изменится.
 
Если установите в компоненте FontDialog1 опцию fdApplyButton, то можете написать обработчик события OnApply:
Memo1->Font->Assign(FontDialog1->Font);
Тогда пользователь может наблюдать изменения в окне Memo1, нажимая в диалоговом окне кнопку Применить и не прерывая диалога. Это очень удобно, так как позволяет пользователю правильно подобрать атрибуты шрифта.
 
Если в качестве окна редактирования в вашем приложении вы используете RichEdit, то можете предоставить пользователю выбирать атрибуты шрифта для выделенного фрагмента текста или для вновь вводимого текста. Тогда выполнение команды меню Шрифт может осуществляться операторами:
if(FontDialog1->Execute())
RichEdit1->SelAttributes->Assign(FontDialog1->Font);
Можно разрешить пользователю изменять шрифт не только отдельных компонентов, но и всех компонентов и надписей на форме. Это осуществляется оператором:
if(FontDialog1->Execute())
Font->Assign(FontDialog1->Font);
В этом операторе свойство Font без ссылки на компонент подразумевает шрифт формы.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий