§ 7. Работа со стандартными диалогами

7.2. Диалоги для работы с цветом и шрифтом

Для вызова стандартного окна установки атрибутов шрифта можно использовать компонент FontDialog (пример 7.5). В окне Шрифт пользователь может выбрать имя шрифта, его стиль, размер, цвет. Основное свойство компонента — Font типа TFont. Метод, который позволит присвоить значения всех выбранных атрибутов шрифта, шрифту компонента — метод Assign.

Для вызова стандартного окна установки цвета используется компонент ColorDialog (пример 7.6). В нем можно выбрать цвет из базовой палитры. Основное свойство компонента ColorDialog — Color. Это свойство соответствует тому цвету, который пользователь выбрал в диалоге. Дополнительные возможности описаны в Приложении.

Пример 7.7. Создать проект «Форматирование надписи». Для надписи на форме выбрать атрибуты текста с помощью диалогового окна Шрифт. Цвет фона выбрать с помощью диалогового окна Цвет.

Этапы выполнения задания

  1. Поместить на форму компоненты: FontDialog1, ColorDialog1, Label1, Button1, Button2.
  2. Изменить свойство Caption компонента Label1 — «Пример работы с диалогами».
  3. Установить значение false для свойства Transparent (прозрачность) у компонента Label1.
  4. Изменить свойство Caption компонента Button1 на «Смена атрибутов текста».
  5. Изменить свойство Caption компонента Button2 на «Смена цвета фона».
  6. Написать обработчик события OnClick для компонента Button1.
  7. Написать обработчик события OnClick для компонента Button2.

Пример 7.5. Стандартный диалог для настроек шрифта:

Пример 7.6. Стандартный диалог для выбора цвета:

Пример 7.7. Форма на этапе конструирования:

Обработчик события OnClick для компонента Button1

void __fastcall TForm1::Button1Click
                TObject *Sender)

{

  if (FontDialog1 -> Execute())

    Label1 -> Font ->

    Assign(FontDialog1 -> Font);

}

Обработчик события OnClick для компонента Button2

void __fastcall TForm1::Button2Click
                (TObject *Sender)

{

  if (ColorDialog1 -> Execute())

    Label1 -> Color =

    ColorDialog1 -> Color;

}