Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 218; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.006 с.) |