Компонент ColorBox, введенный в Delphi 6, представляет собой выпадающий список цветов. Может использоваться как простой и удобный способ выбора цвета пользователем.
Свойство Style является множеством, элементы которого определяют, какие именно категории цвета представлены в списке: стандартные, системные, дополнительные. Этим свойством может быть также задано наличие строки с заказным цветом. Подобная строка с надписью «Custom…» появляется первой в списке. При выборе ее пользователем открывается стандартный диалог Windows выбора цвета, в котором пользователь может определить заказной (нестандартный) цвет.
Свойство Style позволяет также включить в список цветов строки « clDefault* — цвет компонента по умолчанию, и «clNone» — цвет, зависящий от версии Windows — белый для Windows 98 и 2000, черный для Windows NT и ХР. Если присвоить цвет clDefault какому-то компоненту, то компонент будет рисоваться цветом, который заложен в него по умолчанию. Аналогично, присваивание clNone тоже приведет к тому, что истинный цвет будет определяться самим компонентом.
Свойство DefaultColorColor определяет, квадратиком какого цвета будет помечена в списке строка « clDefault». Свойство NoneColorColor определяет, квадратиком какого цвета будет помечена в списке строка «clNone». При этом, как сказано выше, в действительности присваиваемые цвета будут определяться теми компонентами, в которые они передаются.
Узнать цвет, выбранный пользователем в списке, позволяет свойство Selected. Для этого можно воспользоваться, например, событием компонента OnSelect, наступающим в момент выбора пользователем цвета. Например, оператор
Memol.Color := ColorBoxl.Selected;
помещенный в обработчик этого события, задаст фону окна Memol цвет, выбранный пользователем.
Свойство Colors является индексированным массивом цветов в списке (индексы начинаются с 0). Свойство ColorNames — аналогичный массив строк с именами цветов.
Большинство остальных свойств, методов, событий подобны компоненту ComboBox. В частности, список всех строк содержится в свойстве Items типа TStrings. Индекс строки цвета, которая будет показана пользователю в момент начала выполнения приложения, определяется свойством только времени выполнения Itemlndex. Если вам желательно в первый момент показать пользователю определенный цвет, это можно сделать в обработчике события формы OnCreate. определив в нем Itemlndex с помощью метода IndexOf. Например, следующий оператор в первый момент показывает пользователю строку « clDefault»:
ColorBoxl.Itemlndex := ColorBoxl.Items.IndexOf(‘clDefault’);
Основные свойства
Свойство | Объявление / Описание |
ColorNames | property ColorNames[Index: Integer]: string;
Индексированный массив строк с именами цветов. Индексы начинаются с 0. В зависимости от опции cbPrettyNames свойства Style имена начинаются с префикса «cl» («с1В1аск») или записываются без этого префикса («Black»). |
Colors | property Colors[Index: Integer]: TColor;
Индексированный массив строк цветов. Индексы начинаются с 0. Опции свойства Style определяют, какие цвета содержатся в списке. |
Default-ColorColor | property DefaultColorColor: TColor;
Определяет, квадратиком какого цвета будет помечена в списке строка «clDefault». Истинный цвет определяется компонентом, воспринимающим этот цвет (см. описание ColorBox). Свойство работает, только если в Style заданы опции cbSys-temColors и cblncludeDefault. |
DropDown-Count | property DropDownCount: Integer;
Определяет максимальное число строк, отображаемое в раскрывающемся списке. |
Items | property Items: TStrings;
Массив строк списка — объект класса TStrings. Свойства этого класса позволяют формировать и изменять список. |
NoneColor-Color | property NoneColorColor: TColor;
Определяет, квадратиком какого цвета будет помечена в списке строка «clNone». Истинный цвет определяется компонентом, воспринимающим этот цвет (см. описание TColorBox). Свойство работает, только если в Style заданы опции cbSystemColors и cblncludeNone. |
Selected | property Selected: TColor;
Выбранный пользователем цвет. Его удобно определять в обработчике события OnSelect. |
Style | type TColorBoxStyles = (cbStandardColors,
cbExtendedColors, cbSystemColors, cblncludeNone, cblncludeDefault, cbCustomColor, cbPrettyNames); TColorBoxStyle = set of TColorBoxStyles; property Style: TColorBoxStyle; Множество опций, определяющих состав цветов в списке. |