:: Меню ::

Головна
Передмова
СЕРЕДОВИЩЕ РОЗРОБКИ C++ BUILDER
Початок роботи
Перший проект
ПРАКТИКУМ ПРОГРАМУВАННЯ
Графіка
Мультимедіа
Бази даних
Компонент програміста
Консольне застосування
Довідкова система
Створення настановного диска
Приклади програм
C++ Builder — короткий довідник
Книга для гостей
Контакти
Добавити у вибране

:: Друзі ::

 

:: Лічильники ::

=

 

 

 

 

 

Структура простого проекту



Проектом є набір програмних одиниць — модулів.

Одін з модулів, званий головним, містить інструкції, з яких починається виконання програми. Щоб побачити головний модуль, потрібно в меню Project вибрати команду View Source . Як приклад в лістингу 2.5 приведений текст головного модуля програми "Сила струму".

Лістинг 2.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).

Лістинг 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; // опір 
// отримати дані з полів введення 
// можливе виключення 
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_l.h) значну частину модуля форми (Amper_l.cpp). Крім того, C++ Builder, аналізуючи дії програміста, сформував опис форми, файл проекту і файл ресурсів проекту.
 


http://friendsesp.com
x

:: Наша кнопка ::

Отримати код:

Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


:: Реклама ::


:: Посилання ::

-


 

 

 


Copyright by Zvircom © 2009