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

7.2. Дыялогі для работы з колерам і шрыфтам

Для выкліку стандартнага акна ўстаноўкі атрыбутаў шрыфту можна выкарыстоўваць кампанент FontDialog (прыклад 7.5). У акне Шрифт карыстальнік можа выбраць імя шрыфту, яго стыль, памер, колер. Асноўная ўласцівасць кампанента — Font тыпу TFont. Метад, які дазволіць прысвоіць значэннi ўсіх выбраных атрыбутаў шрыфту кампанента — метад 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;

}