
- •Источник: ©а.Я.Архангельский. 100 компонентов общего назначения библиотеки Delphi5
- •1. Общая характеристика компонентов-диалогов
- •2 Диалоги открытия и сохранения файлов — компоненты OpenDialog, SaveDialog, OpenPictureDialog, SavePictureDialog
- •3 Диалог выбора шрифта — компонент FontDialog
- •4 Диалог выбора цвета — компонент ColorDialog
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;