Структура простого проекта
Листинг 2.6. Заголовочный файл модуля формы (Amper_1.h).
#ifndef Amper_1H #define Amper_1H #include <Classes.hpp> #include "Controls.hpp> #include <StdCTRLs.hpp> #include <Forms.hpp> class TForml: public TForm { __published: // IDE-managed Components TLabel *Label1; TLabel *Label2; TLabel *Label3; TEdit *Editl; TEdit *Edit2; TButton *Buttonl; TButton *Button2; TLabel *Label4; void__fastcall ButtonlClick(TObject *Sender); void__fastcall Button2Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForml(TComponent* Owner); }; extern PACKAGE TForml *Form1; #endif
Листинг 2.7. Модуль формы (Amper_1.cpp).
#include <vcl.h> #pragma hdrstop #include "Amper_l.h" #ragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; __fastcall TForml::TForml(TComponent* Owner) : TForm(Owner) { } // щелчок на кнопке Вычислить void__fastcall TForml::ButtonlClick(TObject *Sender) { float u; // напряжение float r; // сопротивление float i; // сила тока // получить данные из полей ввода // возможно исключение try { u = StrToFloat(Editl › Text); r = StrToFloat(Edit2 › Text); } catch (EConvertError &e) { ShowMessage("При вводе дробных чисел используйте запятую."); return; } // вычислить силу тока // возможно исключение try { i = u/r; } catch (EZeroDivide &e) { ShowMessage("Сопротивление не должно быть равно нулю"); Edit1 › SetFocus(); // курсор в поле Сопротивление return; } // вывести результат в поле метки Label4 › Caption = "Ток: " + FloatToStrF(i,ffGeneral,7.3); } // щелчок на кнопке Завершить void__fastcall TForml::Button2Click(TObject *Sender) { Forml › Close(); // закрыть окно программы }
Следует отметить, что значительное количество работы по генерации программного кода выполнил C++ Builder. Он полностью сформировал главный модуль (Amper.cpp), заголовочный файл модуля формы (Amper_1.h), значительную часть модуля формы (Amper_1.cpp). Кроме того, C++ Builder, анализируя действия программиста, сформировал описание формы, файл проекта и файл ресурсов проекта.