1. Откройте проект из примера 3.9 и дополните его кнопкой «Очистить». Кнопка «Очистить» должна очищать текст метки (Свойству Caption присвоить значение пустой строки: ""). Сделайте случайным выбор цвета и размера шрифта у метки.

Откроем программу из примера 3.9 или выполним все действия, описанные в примере 3.9, чтобы получилась программа, в которой по нажатию кнопки «Приветствие» в форме появляется текст «Здравствуй, мир!».

Создадим кнопку «Очистить», добавим для неё обработчик клика и запишем команду очистки текста label1.Text := '';. В обработчик кнопки «Приветствие» добавим команды для изменения свойств ForeColor (цвет текста) и Font (шрифт). В нашем случае new System.Drawing.Font() принимает два аргумента: первый — название шрифта, второй — размер шрифта. Размер шрифта установим случайным числом от 10 до 20, для этого воспользуемся выражением 10 + rnd.next(10), где rnd.next(10) выдаст случайное число от 0 до 10, к полученному числу прибавится ещё 10 — получится диапазон от 10 до 20.

Unit Unit1;

interface

uses System, System.Drawing, System.Windows.Forms;

type
  Form1 = class(Form)
    procedure button1_Click(sender: Object; e: EventArgs);
    procedure button2_Click(sender: Object; e: EventArgs);
{$region FormDesigner}
  private
    {$resource Unit1.Form1.resources}
    button1: Button;
    button2: Button;
    label1: &Label;
    {$include Unit1.Form1.inc}
  {$endregion FormDesigner}
  public
    constructor;
    begin
      InitializeComponent;
    end;
  end;

implementation

procedure Form1.button1_Click(sender: Object; e: EventArgs);
begin
  var rnd: Random := new Random();
  label1.Font := new System.Drawing.Font('Microsoft Sans Serif', 10 + rnd.next(10));
  label1.ForeColor := Color.FromArgb(255, rnd.next(256), rnd.next(256), rnd.next(256));
  label1.Text := 'Здравствуй, мир!';
end;

procedure Form1.button2_Click(sender: Object; e: EventArgs);
begin
  label1.Text := '';
end;

end.

Скачать готовый проект Pascal: Upr2-1.rar.

Чтобы при нажатии на кнопку «Приветствие» текст сохранял жирность и курсив, замените эти строки:

label1.Font := new System.Drawing.Font('Microsoft Sans Serif', 10 + rnd.next(10));

на эти:

label1.Font := new System.Drawing.Font('Microsoft Sans Serif', 10 + rnd.next(10), FontStyle.Bold or FontStyle.Italic);