Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ПОА_2005_Builder.doc
Скачиваний:
7
Добавлен:
03.05.2019
Размер:
1.26 Mб
Скачать

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

Перенесите на форму компонент FontDialog.

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

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

Свойства MaxFontSize и MinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. Значения по умолчанию равны нулю, и тогда ограничения на размер отсутствуют.

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

Свойство Options содержит множество опций, из которого выделим следующие:

fdAnsiOnly

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

fdApplyButton

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

fdEffects

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

fdFixedPitchOnly

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

fdForceFontExist

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

fdLimitSize

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

fdNoFaceSel

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

fdScalableOnly

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

fdNoSizeSel

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

fdNoStyleSel

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

fdWysiwyg

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

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

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

Рассмотрим примеры применения компонента FontDialog.

  1. Начните новое приложение. На форме с надписью ДИАЛОГ FONTDIALOG разместите компоненты MainMenu1, Memo1, RichEdit1, FontDialog1, FontDialog2, FontDialog3.

  2. Сконструируйте меню с командами Шрифт_M, Шрифт_R, Шрифт_F.

  3. В обработчик команды Шрифт_M впишите

if(FontDialog1->Execute())

Memo1->Font->Assign(FontDialog1->Font);

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

  1. В компоненте FontDialog1 установим опцию fdApplyButton в true и напишем обработчик события OnApply:

Memo1->Font->Assign(FontDialog1->Font);

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

  1. Используем в качестве окна редактирования RichEdit1. Теперь в диалоговом окне пользователь выбирает атрибуты шрифта для выделенного фрагмента текста или для вновь вводимого текста. Эта возможность реализуется следующим обработчиком команды Шрифт_R:

if(FontDialog2->Execute())

RichEdit1->SelAttributes->Assign(FontDialog2->Font);

Сохраните все и выполните приложение.

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

if(FontDialog3->Execute())

Font->Assign(FontDialog3->Font);

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

Запустите приложение на выполнение и убедитесь в работоспособности приложения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]