
- •Системные диалоги 10 Системные диалоги Диалоги работы с файлами - компоненты OpenDialog, SaveDialog, OpenPictureDialog, SavePictureDialog
- •Подумайте, что произойдет, ели пользователь попытается Сохранить файл до первого вызова "Открыть" Диалог выбора шрифта - компонент FontDialog
- •Диалоги выбора цвета Компонент ColorDialog
- •Компонент tColorBox
Компонент 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');