Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Структура файлів програмних модулів форм
Кожен програмний модуль форми складається з двох файлів: заголовного файлу, з описом класу форми, і файлу з реалізації форми [1]. Заголовний файл Unit1.h донавчальногоприкладу з контрольної роботи № 3 має наступний текст: //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <Menus.hpp> #include <Graphics.hpp> #include <ImgList.hpp> #include <ComCtrls.hpp> //--------------------------------------------------------------------------- class TForm1: public TForm { __published: // IDE-managed Components TMainMenu *MainMenu1; TLabel *Label1; TImage *Image1; TMenuItem *Technology; TMenuItem *Scheme; TMenuItem *Devices; TMenuItem *Info; TMenuItem *Device1; TMenuItem *Device2; TMenuItem *Device3; TMenuItem *Products; TMenuItem *Description; TMenuItem *Design1; TMenuItem *Characteristic1; TMenuItem *Design2; TMenuItem *Process2; TMenuItem *Characteristic2; TMenuItem *Design3; TMenuItem *Process3; TMenuItem *Characteristic3; TMenuItem *About; TMenuItem *Exit; TMenuItem *Literature; TImage *Image2; TImage *Image3; TImage *Image4; TImage *Image5; TImage *Image6; TImage *Image7; TImage *Image8; TImage *Image9; TImage *Image10; TImage *Image11; TImage *Image12; TImage *Image13; TImage *Image14; TImage *Image15; TImage *Image16; TImage *Image17; TImage *Image18; TImageList *ImageList1; TMenuItem *Process1; void __fastcall ExitClick(TObject *Sender); void __fastcall AboutClick(TObject *Sender); void __fastcall FormCreate(TObject *Sender); void __fastcall SchemeClick(TObject *Sender); void __fastcall DescriptionClick(TObject *Sender); void __fastcall ProductsClick(TObject *Sender); void __fastcall Design1Click(TObject *Sender); void __fastcall Design2Click(TObject *Sender); void __fastcall Design3Click(TObject *Sender); void __fastcall Process1Click(TObject *Sender); void __fastcall Process2Click(TObject *Sender); void __fastcall Process3Click(TObject *Sender); void __fastcall Characteristic1Click(TObject *Sender); void __fastcall Characteristic2Click(TObject *Sender); void __fastcall Characteristic3Click(TObject *Sender); void __fastcall Image2MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image3MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image4MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image5MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image7MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image6MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image8MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image9MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image10MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image11MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image12MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image13MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image14MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image15MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image16MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y); void __fastcall Image17MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall Image18MouseMove(TObject *Sender, TShiftState Shift, int X, int Y); void __fastcall LiteratureClick(TObject *Sender); void __fastcall Image11Click(TObject *Sender); void __fastcall Image3Click(TObject *Sender); void __fastcall Image9Click(TObject *Sender); void __fastcall Image10Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif
Відповідний заголовний файл для форми Form1 починається з директив препроцесору, яки додаються автоматично. Інтегрованє середовище С++ Buіlder само додає необхідні директиви #іnclude для підключення зазначених копій файлів, у яких описані ті компоненти, перемінні, константи і функції, яки використовуються в даному модулі форми. Однак для деяких функцій таке автоматичне підключення не виконується і у таких випадках розробник програми С++ сам повинен вручну додавати відповідні директиви #іnclude. Після директив препроцесору #іnclude розташовується опис класу форми. Наприклад, ім'я класу головної форми позначається TForm1. Клас форми складається з трьох розділів: _publіshed - відкритий розділ, що містить оголошення розміщених на формі компонентів і для них оброблювачів відповідних подій, другий - prіvate, що вказує на закритий розділ класу, і publіc - відкритий розділ классу [5]. У наведеному заголовному файлі в розділі _publіshed можна побачити оголошення покажчиків на компоненти: TMaіnMenu, TLabel, TImage, TMenuItem та інші. Далі у розділі _publіshed розташовані оголошення прототипів функцій, які формуються розробником прикладної програми С++. Усе, що записано у розділі _publіshed, вносить у нього C++ Buіlder автоматично у процесі проектування форми до програми. Як правило, розробнику прикладної програми не приходиться працювати з цим розділом. У розділи prіvate і publіc розробник програми може додавати таки свої оголошення: типів даних, перемінних і функцій. Оголошення, яки записані в розділі publіc, будуть доступні для інших класів і модулів. Те, що оголошено у розділі prіvate, доступно тільки в межах даного програмного модуля [5]. С++ Buіlder самостійно включає у розділ publіc оголошення (прототип) конструктора, до спроектованої форми. Після рядка extern PACKAGE можуть міститися оголошення: типів даних, перемінних і функцій, які не включені у клас форми і до них може бути доступ з інших блоків.
Файл реалізації програмного модуля форми Form1 доприкладу з контрольної роботи № 3 має назву Unit1.cpp і наступний текст: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit2.h" #include "Unit3.h" #include "Unit4.h" #include "Unit5.h" #include "Unit6.h" #include "Unit7.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::ExitClick(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::AboutClick(TObject *Sender) { AboutBox->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Image1->Picture->LoadFromFile("Data/Main/Background.bmp"); Image2->Visible = false; Image3->Visible = false; Image4->Visible = false; Image5->Visible = false; Image6->Visible = false; Image7->Visible = false; Image8->Visible = false; Image9->Visible = false; Image10->Visible = false; Image11->Visible = false; Image12->Visible = false; Image13->Visible = false; Image14->Visible = false; Image15->Visible = false; Image16->Visible = false; Image17->Visible = false; Image18->Visible = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::SchemeClick(TObject *Sender) { Image1->Picture->LoadFromFile("Data/Main/Scheme.bmp"); Image2->Visible = true; Image3->Visible = true; Image4->Visible = true; Image5->Visible = true; Image6->Visible = true; Image7->Visible = true; Image8->Visible = true; Image9->Visible = true; Image10->Visible = true; Image11->Visible = true; Image12->Visible = true; Image13->Visible = true; Image14->Visible = true; Image15->Visible = true; Image16->Visible = true; Image17->Visible = true; Image18->Visible = true; Label1->Visible = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::DescriptionClick(TObject *Sender) { Form2->RichEdit1->Lines->LoadFromFile("Data/Main/Scheme.rtf"); Form2->Caption="Опис процесу отримання хлористого метилену"; Form2->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::ProductsClick(TObject *Sender) { Form2->RichEdit1->Lines->LoadFromFile("Data/Main/Products.rtf"); Form2->Caption="Продукція"; Form2->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Design1Click(TObject *Sender) { Form3->Caption="Конструкція хлоратора"; Form3->Image1->Picture->LoadFromFile("Data/Device1/Device.bmp"); Form3->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Design2Click(TObject *Sender) { Form3->Caption="Конструкція абсорбера"; Form3->Image1->Picture->LoadFromFile("Data/Device2/Device.bmp"); Form3->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Design3Click(TObject *Sender) { Form3->Caption="Конструкція розріджувача лугу"; Form3->Image1->Picture->LoadFromFile("Data/Device3/Device.bmp"); Form3->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Process1Click(TObject *Sender) { Form2->RichEdit1->Lines->LoadFromFile("Data/Device1/Process.rtf"); Form2->Caption="Опис процесу в хлораторі"; Form2->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Process2Click(TObject *Sender) { Form2->RichEdit1->Lines->LoadFromFile("Data/Device2/Process.rtf"); Form2->Caption="Опис процесу в абсорбері"; Form2->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Process3Click(TObject *Sender) { Form2->RichEdit1->Lines->LoadFromFile("Data/Device3/Process.rtf"); Form2->Caption="Опис процесу в розріджувачі лугу"; Form2->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Characteristic1Click(TObject *Sender)
{ Form4->Caption="Параметри хлоратора"; Form4->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Characteristic2Click(TObject *Sender) { Form5->Caption="Параметри абсорбера"; Form5->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Characteristic3Click(TObject *Sender) { Form6->Caption="Параметри розріджувача лугу"; Form6->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image2MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("3 - Змішувач"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption=(""); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image3MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("4 - Хлоратор"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image4MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("1 - Змішувач"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image5MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("2 - Підігрівник"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image7MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("16 - Сепаратор"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image6MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("5 - Сажовловлювач"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image8MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("10 – Графітовий холодильник"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image9MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("7 - Абсорбер"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image10MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("8 - Абсорбер"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image11MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("9 – Розріджувач лугу"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image12MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("11 – Збірник концентрованої соляної кислоти"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image13MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("12 - Компресор"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image14MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("15 - Фільтр"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image15MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("14 - Конденсатор");
} //--------------------------------------------------------------------------- void __fastcall TForm1::Image16MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("13 - Осушувачі"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image17MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("17 – Розріджувач лугу"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image18MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Label1->Caption= ("6 – Повітряний холодильник"); } //--------------------------------------------------------------------------- void __fastcall TForm1::LiteratureClick(TObject *Sender) { Form2->Caption= ("Література"); Form2->RichEdit1->Lines->LoadFromFile("Data/Main/Literature.rtf"); Form2->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image11Click(TObject *Sender) { Form3->Caption="Конструкція розріджувача лугу"; Form3->Image1->Picture->LoadFromFile("Data/Device3/Device.bmp"); Form3->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image3Click(TObject *Sender) { Form3->Caption="Конструкція хлоратора"; Form3->Image1->Picture->LoadFromFile("Data/Device1/Device.bmp"); Form3->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image9Click(TObject *Sender) { Form3->Caption="Конструкція абсорбера"; Form3->Image1->Picture->LoadFromFile("Data/Device2/Device.bmp"); Form3->ShowModal(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Image10Click(TObject *Sender) { Form3->Caption="Конструкція абсорбера"; Form3->Image1->Picture->LoadFromFile("Data/Device2/Device.bmp"); Form3->ShowModal(); } //---------------------------------------------------------------------------
Директиви #include використовуються для включення копії файлу в те місце, де знаходиться ця директива препроцесора, а директиви #pragma вказують на необхідність використання ракетів (package) і файлів *.dfm. Після автоматично включених директив препроцесору в файлі модуля форми розташовуються також автоматично приєднанні оголошення покажчика на об'єкт форми, наприклад, Form1, а потім йде виклик конструктора для даної форми. Тіло відповідної функції порожнє, але розробник програми може вставляти у тіло якісь свої оператори. При створенні вікна даної форми ці оператори будуть виконуватися. У ці оператори також можна вставити початкові настроювання якісь властивостей форми. Після конструктора форми розташовуються описи усіх функцій, оголошених у заголовному файлі форми Unit1.h. У цій частині можна додавати оголошення любих типів даних, констант, перемінних, котрі не оголошені в заголовному файлі, та також робити описи будь-яких функцій, не згаданих у заголовному файлі. По команді Save As імена файлам модулів форм прикладної програми призначає сама С++ Buіlder за замовчуванням: для модуля першої форми задається назва "Unіt1.cpp", для модуля другої форми - "Unіt2.cpp" і т.д.. Ці імена за бажанням розробник програми С++ може змінювати, при цьому залишаючи першу букву з назви, наприклад, для першого модуля U_новє-ім'я-1.срр, а для другого модуля задати - U_новє-ім'я-2.срр. Такі зміни назв файлів для модулів форм С++ Buіlder враховує автоматично з записом нових імен у відповідних указівках препроцесору в заголовному файлі форми.
|
|||||||||
Последнее изменение этой страницы: 2017-02-10; просмотров: 142; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.136.154.103 (0.108 с.) |