Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по дисциплине Объектно-ориентирован...doc
Скачиваний:
33
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

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

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

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

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

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

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

Пример применения компонента FontDialog:

Пусть ваше приложение включает окно редактирования Memol, шрифт в котором пользователь может выбирать командой меню Шрифт. Вы ввели в приложение компонент FontDialog, имя которого по умолчанию FontDialogl. Тогда обработчик команды Шрифт может иметь вид:

if FontDialogl.Execute then Memol.Font.Assign(FontDialogl.Font);

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

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

Memol.Font.Assign(FontDialogl.Font) ;

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

5. Диалог выбора цвета — компонент ColorDialog

Компонент ColorDialog вызывает диалоговое окно выбора цвета. В нем пользователь может выбрать цвет из базовой палитры или, нажав кнопку «Определить цвет», раскрыть дополнительную панель, позволяющую синтезировать цвет, отличный от базовых. Синтезированный цвет можно добавить кнопкой «Добавить в набор» в палитру дополнительных цветов на левой панели и использовать его в дальнейшем. (см. рис. 31)

рис. 31. Компонент ColorDialog

Основное свойство компонента ColorDialog — Color. Это свойство соответствует тому цвету, который выбрал в диалоге пользователь. Если при вызове диалога желательно установить некоторое начальное приближение цвета, это можно сделать, установив Color предварительно во время проектирования или программно.

Свойство CustomColors типа TStrings позволяет задать заказные цвета дополнительной палитры. Каждый цвет определяется строкой вида

<Имя цвета>=<шестнадцатеричное представление цвета>;

Имена цветов задаются от ColorA (первый цвет) до ColorP (шестнадцатый, последний).

Свойство Options содержит множество следующих опций:

cdFullOpen - Отображать сразу при открытии диалогового окна панели определения заказных цветов

cdPreventFullOpen - Запретить появление в диалоговом окне кнопки Опреде­лить цвет, так что пользователь не сможет определять но­вые цвета

cdShowHelp - Добавить в диалоговое окно кнопку Справка

cdSolidColor - Указать Windows использовать сплошной цвет, ближай­ший к выбранному (это обедняет палитру)

cdAnyColor - Разрешать пользователю выбирать любые не сплошные цвета (такие цвета могут быть не ровными)

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

Пример применения компонента ColorDialog:

Если вы хотите, чтобы пользователь мог задать цвет какого-то объекта, например, цвет фона компонента Memol, то это можно реализовать оператором

if ColorDialogl.Execute then Memol.Color:=ColorDialogl.Color;