Структура простого проекта
Проект представляет собой набор программных единиц — модулей. Один из модулей, называемый главным, содержит инструкции, с которых начинается выполнение программы. Чтобы увидеть главный модуль, нужно в меню Project выбрать команду View Source. В качестве примера в листинге 2.5 приведен текст главного модуля программы "Сила тока".
Листинг 20.5. Главный модуль (Amper.cpp)
#include <vcl.h>
#pragma hdrstop
USEFORM("Amper_l.cpp", Forml);
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->Title = "Сила тока";
Application->CreateForm(__classid(TForml), SForml);
Application->Run(); }
catch (Exception Sexception)
{
Application->ShowException(Sexception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception Sexception)
{
Application->ShowException(Sexception);
}
}
return 0;
}
Начинается главный модуль директивами компилятору (точнее, препроцессору). Директива #include <vci.h> информирует компилятор, что перед тем как приступить непосредственно к компиляции, в текст главного модуля нужно включить заголовочный файл библиотеки визуальных компонентов — vcl.h. Строка USEFORM("Amper_i.cpp", Form1) указывает, что в проект нужно включить файл модуля формы Amper_l.cpp, который содержит функции обработки событий для формы Form1. Далее следует описание главной функции программы — winMain. Функция winMain инициализирует внутренние структуры программы, создает форму Formi и запускает программу, что приводит к появлению на экране стартовой формы. Так как в проекте "Сила тока" только одна форма, то на экране именно она и появляется. Инструкция обработки исключений catch выполняется, если в программе возникает ошибка. Таким образом, главный модуль обеспечивает вывод стартовой формы программы, дальнейшее поведение которой определяют функции обработки событий стартовой формы.
Помимо главного модуля в состав проекта входят модули формы. Для каждой формы C++ Builder создает отдельный модуль, который состоит из двух файлов: заголовочного файла и файла кода (содержимое этих файлов отражается в окне редактора кода). Заголовочный файл содержит описание формы (листинг 2.6), файл кода (модуль формы) — описание (текст) функций, в том числе и обработки событий (листинг 2.7).
Листинг 20.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 TForm1::Button1Click(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)
{
Form1->Close(); // закрыть окно программы
}
Следует отметить, что значительное количество работы по генерации программного кода выполнил C++ Builder. Он полностью сформировал главный модуль (Amper.cpp), заголовочный файл модуля формы (Amper_l.h), значительную часть модуля формы (Amper_l.cpp). Кроме того, C++ Builder, анализируя действия программиста, сформировал описание формы, файл проекта и файл ресурсов проекта.
- Московский государственный университет
- Компоненты
- Событие и функция обработки события
- Редактор кода
- Система подсказок
- Навигатор классов
- Шаблоны кода
- Справочная система
- Сохранение проекта
- Компиляция
- Предупреждения и подсказки
- Компоновка
- Запуск программы
- Ошибки времени выполнения
- Внесение изменений
- Настройка приложения
- Название программы
- Значок приложения
- Перенос приложения на другой компьютер
- Структура простого проекта
- 2. Задание на выполнение работы
- 1. Электроэнергия.
- 2. Игра «угадай число».
- 3. Гороскоп
- 4. Межгород
- 6. Алфавит
- 7. Палиндром
- 8. Метеослужба
- 9. Статистика
- 10. Кафе.
- Лабораторная работа №22 Графика.
- Карандаш и кисть
- Графические примитивы
- Ломаная линия
- Прямоугольник
- Многоугольник
- Окружность и эллипс
- Лабораторная работа №23 Иллюстрации
- Битовые образы
- Мультипликация
- Метод базовой точки
- Использование битовых образов
- Загрузка битового образа из ресурса программы
- Создание файла ресурсов
- Подключение файла ресурсов
- Int w, h; // размер кадра
- Int с; // номер воспроизводимого кадра
- Лабораторная работа №25
- 1. База данных и субд
- Локальные и удаленные базы данных
- Структура базы данных
- Псевдоним
- Компоненты доступа и манипулирования данными
- Создание базы данных
- Доступ к базе данных Доступ к базе данных обеспечивают компонентыDatabase, Table, Query и DataSource.Значки этих компонентов находятся на вкладкахData Accessи bde(рис. 25.8).
- Отображение данных
- Манипулирование данными
- Выбор информации из базы данных
- Перенос программы управления базой данных на другой компьютер
- 2. Задание на выполнение работы
- Литература