Delphi-Help

Главная

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

Оцените материал
(0 голосов)


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

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

Основное свойство компонента 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;

Авторизация



Счетчики