Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Delphi_1курс лекции / Тема 08 Системные диалоги .doc
Скачиваний:
54
Добавлен:
23.03.2015
Размер:
118.27 Кб
Скачать

Компонент tColorBox

Страница Additional

Компонент TColorBoxпредставляет собой выпадающий список цветов. Может использоваться как простой и удобный способ выбора цвета пользователем.

Свойства

Style :TColorBoxStyle, где TColorBoxStyle = set of TColorBoxStyles;

TColorBoxStyles = (cbStandardColors, cbExtendedColors, cbSystemColors, cbIncludeNone, cbIncludeDefault, cbCustomColor, cbPrettyNames). Свойство является множеством, элементы которого определяют, какие именно категории цвета представлены в списке: стандартные, системные, дополнительные. Этим свойством может быть также задано наличие строки с заказным цветом. Подобная строка с надписью "Custom..." появляется первой в списке. При выборе ее пользователем открывается стандартный диалогWindowsвыбора цвета, в котором пользователь может определить заказной (нестандартный) цвет.

Свойство Styleпозволяет также включить в список цветов строки "clDefault" - цвет компонента по умолчанию, и "clNone" - цвет, зависящий от версииWindows- белый дляWindows98 и черный дляNT. Если присвоить цветclDefaultкакому-то компоненту, то компонент будет рисоваться цветом, который заложен в него по умолчанию. Аналогично, присваиваниеclNoneтоже приведет к тому, что истинный цвет будет определяться самим компонентом.

Элементы множества означают следующее:

cbStandardColors16 стандартных цветов типа clRed, clBlack и т.п.

cbExtendedColorsнабор дополнительных цветов clMoneyGreen, clSkyBlue, clCream, clMedGray.

cbSystemColorsсистемные цвета, установленные в Windows.

cbIncludeNoneсписок включает в себя строку "clNone"; какой именно цвет будет отображаться в квадратике этой строки определяется свойством NoneColorColor, а истинный цвет определяется компонентом, воспринимающим этот цвет (см. описание TColorBox); эта опция влияет только при наличии опции cbSystemColors.

cbIncludeDefaultсписок включает в себя строку "clDefault" - цвет по умолчанию; какой именно цвет будет отображаться в квадратике этой строки определяется свойством DefaultColorColor, а истинный цвет определяется компонентом, воспринимающим этот цвет (см. описание TColorBox); эта опция влияет только при наличии опции cbSystemColors.

cbCustomColorПервой строкой в списке появляется Custom; при выборе пользователем этой строки открывается диалог, в котором пользователь может определить заказной (нестандартный) цвет.

cbPrettyNamesСтроки в списке обозначают цвета, а не их имена: например, Black а не clBlack.

DefaultColorColor: TColor– определяет, квадратиком какого цвета будет помечена в списке строка "clDefault". СвойствоNoneColorColorопределяет, квадратиком какого цвета будет помечена в списке строка "clNone". При этом, как сказано выше, в действительности присваиваемые цвета будут определяться теми компонентами, в которые они передаются.

Selected: TColorВыбранный пользователем цвет. Его удобно определять в обработчике события OnSelect, наступающим в момент выбора пользователем цвета. Например, обработчик

procedure TForm1.ColorBox1Select(Sender: TObject);

begin

memo1.Color:= ColorBox1.Selected;

end;

задаст фону окна Memo1 цвет, выбранный пользователем.

Colors[Index: Integer]: TColor– является индексированным массивом цветов в списке (индексы начинаются с 0).

ColorNames : [Index: Integer]: string– аналогичный массив строк с именами цветов.

Большинство остальных свойств, методов, событий подобны компоненту TComboBox. В частности:

Items :TStrings– список всех строк.

ItemIndex:Integer– Индекс строки цвета, которая будет показана пользователю в момент начала выполнения приложения, определяется только во временя выполнения. Если вам желательно в первый момент показать пользователю определенный цвет, это можно сделать в обработчике события формыOnCreate, определив в немItemIndexс помощью методаIndexOf. Например, следующий оператор в первый момент показывает пользователю строку "clDefault":

ColorBox1.ItemIndex :=ColorBox1.Items.IndexOf('clDefault');