Учись программированию на C++ Builder бесплатно!
Содержание[Скрыть]

Компонент 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);
Поделиться