Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прил 4.2 Системные диалоги.doc
Скачиваний:
6
Добавлен:
06.03.2016
Размер:
272.9 Кб
Скачать

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

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

Рис. 8 Диалоговое окно выбора цвета

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

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

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

ColorA=808022

задает первый заказной цвет. При задании цвета 2 младших разряда описывают интенсивность красного цвета, следующие 2 — зеленого, старшие — синего.

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

cdFullOpen

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

cdPreventFullOpen

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

cdShowHelp

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

cdSolidColor

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

cdAnyColor

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

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

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

if ColorDialog1.Execute then

Memo1.Color := ColorDialog1.Color;