Проектирование интерфейса оконного приложения с использованием элементов управления

На странице Стандартные элементы управления размещены наиболее употребляемые компоненты: 

  • Кнопка (Button)

  • Надпись (Label)

  • Поле для ввода текста (TextBox) 

  • Флажок (CheckBox)

  • Радиокнопка (RadioButton)

  • Список (ListBox)

  • Выпадающий список (ComboBox)

  • Рисунок (PictureBox)

Палитра  Меню и панели инструментов  содержит  компоненты,  необходимые для создания главного меню программы  или  контекстных  меню для  различных  объектов,  помещенных на форму.

Палитры Печать  и  Диалоговые окна содержат компоненты, обеспечивающие  стандартные  диалоги  операционной  системы:  открытие  и  сохранение  файла,  выбор  цвета,  установки параметров  шрифта,  настройки  принтера и управление печатью.

Палитра  Данные  содержит  компоненты  для  работы  с  таблицами  баз данных.

Пример 3.6. 

Создать  проект,  разместив  на  форме  две  кнопки.  При  нажатии  на  одну  из  них  цвет  формы должен  измениться  на  синий,  а  при нажатии  на  вторую  —  должен  восстановиться исходный цвет. 

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

  1. Создать  на  форме  две  кнопки.

  2. Изменить  свойство  Text  у  кнопки  button1  на  Изменить цвет.

  3. Изменить  свойство  Text  у  кнопки  button2  на  Восстановить цвет. 

  4. Создать  обработчик  события Click  для  кнопки  button1  и  изменить цвет  формы.  Команда 

BackColor := Color.Blue;

  1. Создать  обработчик  события Click  для  кнопки  button2  и  изменить цвет  формы  на  первоначальный  (название  цвета  формы  указано  в  поле Color  инспектора  объектов).  Команда 

BackColor := SystemColors.Control;

  1. Сохранить  изменения  в  проекте.

Название  цвета  SystemColors.Control задает не какой-то определенный  цвет.  Это  цвет  элемента  управления,  заданный  цветовой  схемой Windows.  Поэтому  он  не  обязательно будет  серым.

Пример 3.9. 

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

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

  1. Изменить  свойство  Text  формы на «Работаем с кнопкой и меткой».

  2. Добавить  на  форму  кнопку button1.

  3. Изменить  свойство  Text  кнопки на «Приветствие».

  4.  Добавить на форму метку label1.

  5. Изменить  свойства  шрифта  для компонента label1. Нажать кнопку ... в поле Font (цвет шрифта — синий, размер  —  20,  стиль  —  жирный  курсив). 

  6. Очистить поле Text у метки.

  7. Установить  значение  true  у  свойства метки Autosize.

  8. В  обработчик  события  Click  для кнопки button1 вписать команду

label1.Text := 'Здравствуй, мир!';

Пример 3.12

Создать проект, в котором пользователя попросят ввести его имя, а затем, после нажатия клавиши Enter,  будет  выдано  сообщение  «Имя, приятно с Вами познакомиться!»

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

  1. Изменить свойство Text у формы на «Знакомство».

  2. Разместить на форме две метки и текстовое поле.

  3. Изменить  свойство  Text  у  label1 на «Введите свое имя и нажмите клавишу Enter».

  4. Очистить  поле  свойства  Text у Label2.

  5. Написать  обработчик  события KeyPress  для  компонента  Edit1,  который  будет  проверять  нажатие  клавиши  ввода  (код  клавиши  Enter  —  13).  Если  клавиша  нажата,  то  поменять свойство Text у label2:

if e.KeyChar = #13 then

label1.Text := TextBox1.Text + ', приятно с Вами познакомиться!';

Пример 3.13

Создать  проект,  в  котором пользователь сможет ввести число,  получить  его  значение  в  квадрате и  квадратный  корень  из  этого  числа.

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

  1. Изменить свойство Text у формы на  «Квадрат  и  корень».

  2. Разместить  на  форме  три  метки, три  текстовых  поля  и  кнопку.

  3. Изменить  свойство  Text  у  Label1 на «Введите неотрицательное число».

  4. Изменить свойство Text у Label2 на «Квадрат».

  5. Изменить  свойство  Text  у  Label3 на «Корень».

  6. Изменить свойство Text у Button1 на «Расчет».

  7. Написать  обработчик  Click  для кнопки.

procedure Form1.button1_Click(sender: Object; e: EventArgs);

var a, b : integer;

c : real;

begin

a := StrToInt(TextBox1.Text);

b := a * a;

c := sqrt(a);

TextBox2.Text := IntToStr(b);

TextBox3.Text := FloatToStr(c);

end;

Пример 3.16

Создать  проект  для вычисления частного от деления одного  целого  числа  на  другое.  Числа  задаются  в  текстовых  полях.  Результат вычисляется  при  нажатии  на  кнопку «Частное» и помещается в третье текстовое  поле.  Результат  зависит  от  состояния флажка.

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

  1. Поместить  на  форму  текстовые поля (3), надписи (3), флажок и кнопку.

  2. Для  компонента  textBox3  установить  значение  true  для  свойства ReadOnly.

  3. Изменить  свойство  Text  у  компонентов  label  («Делимое»,  «Делитель», «Частное»).

  4. Изменить  свойство  Text  компонента button1 на «Разделить».

  5. Изменить  свойство  Text  компонента  checkBox1  на  «Целочисленное деление».

  6. Написать  обработчик  события Click для компонента button1.

    1. Проверить,  что  поля  компонентов  textBox1  и  textBox2  не  пусты. Иначе вывести сообщение «Одно из полей не заполнено».

    2. Проверить  состояние  переключателя checkBox. Если он включен,  то  выполнить  целочисленное деление, иначе обычное деление.

    3. Вывести результат.

  7. Выполнить  программу  для  различных  значений.  Проверить  работу  приложения,  когда  одно  из  полей textBox1  или  textBox2  (или  оба  поля) пустые.

procedure Form1.button1_Click (sender: Object; e: EventArgs);

var a, b, c : integer;

           d : real;

begin

  if (TextBox1.Text <> '') and

         (TextBox2.Text <> '') then

  begin

    a := StrToInt(TextBox1.Text);

    b := StrToInt(TextBox2.Text);

    if CheckBox1.checked then

    begin

      c := a div b;

      TextBox3.Text := IntToStr(c);

    end

    else

    begin

      d := a / b;

      TextBox3.Text := FloatToStr(d);

    end;

  end

  else

    MessageBox.Show('Одно из полей не заполнено');

end;

Упражнения

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

  2. Откройте проект из примера 3.12 и добавьте на форму три метки и две кнопки. 

    1. Измените свойства компонентов в соответствии с указаниями в таблице1.

    2. Добавьте  в  обработчик  события  KeyPress  команду,  которая делает надпись Label3 и кнопки видимыми.

    3. Напишите обработчики Click для кнопок Button1 и Button2. Сделайте видимыми соответствующие надписи. (Рисунок 1)

    4. Добавьте в приложение еще один вопрос. Форму ответа выберите самостоятельно.

  3.  Создайте  проект  Калькулятор.  Разместите  на  форме  три  поля  TextBox  и  три надписи: «Первое число», «Второе число», «Результат». Добавить кнопки для вычисления суммы, разности, произведения и частного. Запретите редактирование в поле с ответом. *Добавьте проверку деления на нуль. (Рисунок 2)

  4. Создайте  проект,  в  котором  вычисляется  доход  по  вкладу.  Программа  должна обеспечивать расчет денежных сумм для простых или капитализированных вкладов. Если вклад простой, то процентная ставка начисляется от исходной суммы, и каждый месяц она одинаковая, а если капитализированный, то процентная ставка начисляется каждый месяц от суммы вклада в предыдущем месяце. (Рисунок 3)

  5. Реализовать «убегающую кнопку», т. е. при наведении указателя мыши на кнопку она должна случайным образом поменять место.

Добавить кнопку «Домой», которая должна передвинуть «убегающую» в верхний левый угол формы.

Таблица 1
Рисунок 1
Рисунок 2
Рисунок 3
Убегающая кнопкаprocedure Form1.button1_MouseMove(sender: Object; e: MouseEventArgs);var rnd: random := new Random(); begin Randomize; Button1.Left:=rnd.next(0,200); Button1.Top:=rnd.next(0,200);end;