Компонент FontDialog позволяет открыть диалоговое окно со списком выбора шрифтов и настройки их атрибутов для изменения стиля текста компонентов. FontDialog является скрытым компонентом и не отображается на форме приложения.
Свойства FontDialog
- Font типа TFont – является основным свойством FontDialog, которое позволяет задать выбранному компоненту или форме атрибутов шрифта: название, размер, цвет и т.д.
- MaxFontSize – задаёт максимально допустимый размер шрифта. Если значение будет равно 0, то это ограничение не накладывается на размер текста. Опция fdLimitSize должна быть активна.
- MinFontSize – задаёт минимально допустимый размер шрифта. Если значение будет равно 0, то это ограничение не накладывается на размер текста. Опция fdLimitSize должна быть активна.
- Device – устанавливает список возможных шрифтов и имеет несколько значений:
- fdScreen – из списка экрана;
- fdPrinter – из списка принтера;
- fdBoth – из обоих списков.
- Options – позволяет детально настроить FontDialog и имеет множество опций, которые по умолчанию отключены, кроме fdEffects:
- fdAnsiOnly – позволяет отображать шрифты только со символами Windows без специальных символов;
- fdApplyButton – включает в диалоговом окне FontDialog кнопку «применить» независимо от обработчика события OnApply;
- fdEffects – отображает список цветов и специальных эффектов, таких как жирный, подчеркивание и др. в диалоге индикатора;
- fdFixedPitchOnly – включает шрифты с единой шириной всех символов;
- fdForceFontExist – позволяет выбирать предустановленные шрифты из списка и запрещает вводить другие имена шрифтов;
- fdLimitSize – включает применение свойств MaxFontSize и MinFontSize для ограничения размера шрифта;
- fdNoFaceSel – позволяет открывать диалоговое окно установки шрифта;
- fdNoOEMFonts – удаляет из списка OEM шрифты;
- fdScalableOnly – отображает в списке масштабируемые шрифты и удаляет не масштабируемые, т.е. bitmap шрифты;
- fdNoSimillations – отображает в списке шрифты и их начертания, при этом не отображая шрифты, жирный стиль и курсив которых синтезируется;
- fdNoSizeSel – позволяет открывать диалоговое окно установки размера шрифта;
- fdNoStyleSel – позволяет открывать диалоговое окно установки начертания шрифта;
- fdNoVectorFonts – удаляет векторные шрифты из списка;
- fdShowHelp – включает кнопку «справка» в диалоговом окне;
- fdTrueTypeOnly – отображает в списке только TrueType шрифты;
- fdWysiwyg – удаляет из списка аппаратно-зависимые шрифты, оставляя доступными только для экрана и принтера.
При включении опции fdApplyButton появляется кнопка «применить» и по её нажатию срабатывает событие OnApply. В этом обработчике можно написать код, который будет выполнен, не закрывая диалоговое окно.
void __fastcall TForm1::FontDialog1Apply(TObject *Sender, HWND Wnd)
{
//Здесь код, который сработает при нажатии кнопки «применить» в диалоговом окне FontDialog
}
Пример применения FontDialog к Memo
Для изменения шрифта текста в окне редактирования Memo используется компонент FontDialog, который позволяет пользователю самостоятельно изменять параметры текста.
if(FontDialog1->Execute())
Memo1->Font->Assign(FontDialog1->Font);
Пример применения FontDialog к RichEdit
Тоже самое можно сделать и с компонентом RichEdit, но здесь есть весомое отличие от Memo. В окне компонента Memo стили применяются ко всему тексту, когда как в окне RichEdit только к выделенному фрагменту или абзацу.
if(FontDialog1->Execute())
RichEdit1->SelAttributes->Assign(FontDialog1->Font);
Пример применения FontDialog ко всем компонентам
Если на форме находится не один компонент и нужно изменить для шрифт и атрибуты, то это будет долго и не удобно если для каждого прописывать код. Можно эту задачу решить намного быстрее, применив параметры в главному родителю, от которого все компоненты унаследуют эти настройки. Этот родитель форма приложения.
if(FontDialog1->Execute())
Font->Assign(FontDialog1->Font);