Шаг 5.
Вкладка Dialogs. Компонент TColorDialog

    На этом шаге мы рассмотрим компонент, используемый для выбора цвета.

    Компонент TColorDialog создает и обслуживает стандартное окно выбора цвета (рисунок 1).


Рис.1. Стандартное окно TColorDialog

    Свойства компонента TColorDialog представлены в таблице 1.

Таблица 1. Свойства компонента TColorDialog
Свойство Описание
property Color: TColor; Содержит выбранный цвет
property CustomColors: TStrings; Содержит до 16 цветов, определенных пользователем. Каждая строка имеет формат ColorX=HHHHHH, где X - буква от А до Р (латинская), определяющая номер цвета, НННННН - шестнадцатеричное представление цвета в модели RGB (красный, зеленый, голубой)
TColorDialogOption = (cdFullOpen, cdPreventFullOpen, cdShowHelp, cdSolidColor, cdAnyColor);
TColorDialogOptions = set of TColorDialogOption;
property Options: TColorDialogOptions;
Определяет вид окна:
  • cdFullOpen - показывать с развернутой палитрой выбора цвета;
  • cdPreventFullOpen - запретить показ палитры выбора цвета;
  • cdShowHelp - включить в окно кнопку Справка;
  • cdSolidColor - выбирать ближайший сплошной цвет;
  • cdAnyColor - разрешить выбор несплошных цветов

    Изменим пример предыдущего шага с целью демонстрации работы данного компонента. На форме разместим компонент TColorDialog, а также кнопку TButton и компонент TLabel, используемый для демонстрации использования выбранного цвета.


Рис.2. Внешний вид проекта

    Создадим обработчик события OnClick компонента TButton, который позволит выбрать требуемый цвет и применить его к компоненту TLabel.

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Выполняем диалог и анализируем его результат
  if ColorDialog1.Execute then
    // Результат успешный - пользователь выбрал цвет.
    // Используем выбранный цвет.
    Label1.Color:=ColorDialog1.Color;
end;
Текст этого примера можно взять здесь.

    Внешний вид работающего приложения приведен на рисунках 3 и 4.


Рис.3. Окно выбора цвета


Рис.4. Выбранный цвет применен к компоненту TLabel

    На следующем шаге мы рассмотрим компонент TPrintDialog.




Предыдущий шаг Содержание Следующий шаг