212______________________________________________Глава 3

if (FontDialogl->Execute())
Memol->Font->Assign(FontDialogl->Font);

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

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

Memol->Font->Assign(FontDialogl->Font);

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

Если в качестве окна редактирования в вашем приложении вы используете
RichEdit, то можете предоставить пользователю выбирать атрибуты шрифта для
выделенного фрагмента текста или для вновь вводимого текста. Тогда выполнение
команды меню Шрифт может осуществляться операторами:

FontDialogl->Font->Assign(RichEditl->SelAttributes) ;

if (FontDialogl~>Execute())

RichEditl->SelAttributes->Assign(FontDialogl->Font) ;

Первый из этих операторов передает в диалог атрибуты текущего абзаца как
значения по умолчанию, показываемые пользователю при открытии диалога. А
второй оператор передает атрибуты, установленные пользователем, в текущий аб-
зац или в выделенный текст.

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

if (FontDialogl->Execute())

Font->Assign(FontDialogl->Font) ;

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

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

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

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

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

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

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

i-r,1 пгй=ЙПЯП22