Цель: Получение практических навыков программирования задач с использованием нескольких форм.
Порядок работы:
- Запустить C++ Builder
- На форму Form1 с панели инструментов Standard поместить элементы Lable1, Edit1, Button1 и Button2
- Изменить свойства Caption в элементе Lable1 соответственно на «Рост»
- Изменить свойства Caption в элементах Button1 и Button2 на «Новая форма» и «Выход» соответственно
- Убрать в свойстве Text элемента Edit1 содержимое
- На панели инструментов нажать на кнопку форма. Появится новая форма Form2
- На форму Form2 с панели инструментов Standard поместить элементы Lable1, Edit1, Button1 и Button2
- Изменить свойства Caption в элементе Lable1 соответственно на «Результат»
- Изменить свойства Caption в элементах Button1 и Button2 на «Выполнить» и «Закрыть» соответственно
- Убрать в свойстве Text элемента Edit1 содержимое
- Приступить к обработке событий. Начать с нажатия кнопки «Новая форма» на форме Form1. Прежде всего активизировать кнопку, с которой будем работать. Затем перейти в инспектор объектов и активизировать страницу событий (Events). На ней можно обнаружить список всех возможных событий для активного компонента (в данном случае кнопки). Нас интересует событие OnClick, возникающее при нажатии кнопки. Чтобы определить обработчик этого события, необходимо сделать двойной щелчок мыши в поле значения. Появится окно редактора кода с заготовкой для нашего обработчика.
- Для открытия новой формы достаточно написать: Form2->ShowModal();
- Теперь займемся кнопкой «Выход». Обработчик события для нее устанавливается аналогично: кнопка активизируется на форме, в инспекторе объектов выбирается страница Events и на значении события OnClick делается двойной щелчок мыши. Текст этого обработчика: Close();
Метод Close, вызываемый при нажатии кнопки Выход, закрывает форму и завершает приложение.
- Перейти на форму Form2. Приступить к обработке событий. Начать с нажатия кнопки «Результат». Для вычисления оптимального веса достаточно вставить одну строку:
Edit1->Text=IntToStr(StrToInt(Form1->Edit1->Text)-100-10);
- Теперь займемся кнопкой «Закрыть». Текст этого обработчика: Close();
Метод Close, вызываемый при нажатии кнопки Выход, закрывает форму.
- В модуле Unit1.cpp добавить директиву препроцессора #include "Unit2.h"
- В модуле Unit2.cpp добавить директиву препроцессора #include "Unit1.h"
Модуль Unit1.cpp
/---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{ Form2->ShowModal(); }
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{ Close(); }
//---------------------------------------------------------------------------
Модуль Unit2.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{ Close(); }
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{ Edit1->Text=IntToStr(StrToInt(Form1->Edit1->Text)-100-10); }
//---------------------------------------------------------------------------
- Выполнить команду Run/Ran
- Ввести на форме Form1 Рост, нажать на кнопку «Новая форма», на форме Form2 нажать на кнопку «Результат». Посмотреть на полученный результат, нажать на кнопку «Закрыть». Форма Form2 закроется, на форме Form1 нажать на кнопку «Выход».
Содержание отчёта
- Постановка задачи.
- Результаты отладки
- Текст программы с комментариями и результат её выполнения.
Контрольные вопросы:
- С помощью каких директив препроцессора связываются 2 формы
- С помощью каких преобразований числовой результат можно вывести на экран.



C++Builder. Две и более формы (56 КB)

