Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (960530), страница 78
Текст из файла (страница 78)
При создании группы проектов создается текстовый файл с расширением.bpg; при работе с пакетами создаются двоичные ф а й л ы с расширениями .bplи .bpi.При запуске С + + Builder автоматически создается новый проект с именемProject 1, отображаемым в заголовке главного окна С + + Builder. Этот проектимеет в своем составе одну форму F o r m l , название которой видно в окнеФ о р м ы . Разработчик может изменить предлагаемое по умолчанию имя п р о екта, а также установить параметры среды таким образом, что после загрузкиЧасть 3. Современные СУБД и их применение372Рис.
11.4. Связи между файлами проектаС + + Builder будет автоматически загружаться приложение, разработка которого выполнялась в последний раз.Обычно файлы проекта располагаются в одном каталоге. Поскольку дажеотносительно простой проект включает в себя достаточно много файлов, апри добавлении к проекту новых форм количество этих файлов увеличивается, для каждого нового проекта целесообразно создавать отдельный каталог, где и сохранять все ф а й л ы проекта.ГоловнойфайлпроектаГоловной файл проекта является центральным файлом проекта, имеет расширение .срр и представляет собой собственно программу. Для приложения,имеющего в составе одну форму, головной файл проекта имеет следующийвид:////Директивы препроцессора#include <vcl.h>#pragma hdrstop/// / МакросыUSEFILE("readme.txt");USEFORMfmain.cpp", FormMain);USERES("scrollba.res");/// / Главная функция WinMainWINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){try{Application->lnitialize();Application->CreateForm(Application->Run();}classid(TFormMain), &FormMain);11.
Borland С++ Builder373catch (Exception &exception){Application->ShowException(&exception);}return 0;}//Имя проекта (программы) совпадает с именем головного файла проекта иуказывается при сохранении этого файла на диске, первоначально это имяP r o j e c t 1. То же имя имеют файлы ресурсов и параметров проекта, при переименовании файла проекта данные файлы переименовываются автоматически.Сборка всего проекта выполняется при компиляции файла проекта. Приэтом имя создаваемого приложения (ехе-файл) или динамически загружаемой библиотеки (dll-файл) совпадает с названием файла проекта. В дальнейшем мы будем подразумевать, что создается приложение, а не динамическизагружаемая библиотека.В начале головного файла проекта содержатся различные директивы препроцессора. В частности с помощью директивы #include <vcl.h> выполняется подключение заголовочного файла с объявлениями, используемыми в библиотеке визуальных компонентов.Далее следуют макросы, с помощью которых выполняется подлючениеф а й л о в ресурсов и форм.
В частности, макрос U S E F O R M ( " M a i n . c p p " ,F o r m M a i n ) выполняет подключение модуля формы, расположенной в файлес именем M a i n . с р р и имеющей имя F o r m M a i n . В свою очередь, макросU S E R E S ( " s c r o l l b a . r e s " ) выполняет поключение файла ресурсов s c r o l l b a . r e s .Далее расположена главная функция приложения — WinMain. Первый ивторой параметры этой функции являются дескрипторами данного экземпляра приложения и предыдущего экземпляра приложения (если одновременно выполняется несколько таких приложений).
Третий параметр служит указателем на строку с параметрами, передаваемыми п р и л о ж е н и ю черезкомандную строку.Программа проекта содержит три оператора, выполняющих инициализацию приложения ( A p p l i c a t i o n - > l n i t i a l i z e ( ) ; ) , создание формы ( A p p l i c a t i o n >CreateForm(c l a s s i d ( T F o r m M a i n ) , & F o r m M a i n ) ; ) F o r m l и запуск приложения ( A p p l i c a t i o n - > R u n ( ) ; ) .
Названные операторы размещены в блоке t r y ,за которым следует блок c a t c h . Сделано это с целью обработки исключений,возможных при выполнении приложения. При этом используется стандартный обработчик исключений с применением функции ShowException.При выполнении разработчиком каких-либо операций с проектом С++Builder формирует код файла проекта автоматически. Например, при добав-Часть 3. Современные СУБД и их применение374лени и повой формы в файл проекта добавляются две строки кода, относящиеся к этой форме, а при исключении формы из проекта эти строки автоматически исключаются. При необходимости программист может вносить изменения в ф а й л проекта самостоятельно, однако подобные действия могутразрушить целостность проекта и поэтому обычно выполняются только опытными программистами.
Отметим, что некоторые операции, например, создание обработчика события для объекта Application, системой С++ Builder автоматически не выполняются и требуют самостоятельного кодирования вфайле проекта.Отображение кода головного файла проекта в окне Редактора кода задается командой Project\View Source (Проект\Просмотристочника).В файле проекта для многих приложений имеется похожий код, поэтому вдальнейшем при рассмотрении большинства приложений содержимое этогофайла нами не приводится.ФайлыформыДля каждой формы в составе проекта автоматически создаются файл представления формы (расширение .dfm) и ф а й л ы модуля формы: заголовочныйфайл (расширение .h) и файл исходного кода формы (расширение .срр).Файл представления формы является ресурсом С++ Builder и содержитхарактеристики формы и ее компонентов. Разработчик обычно управляет этимфайлом через окна Ф о р м ы и И н с п е к т о р а о б ъ е к т о в .
При конструированииформы в файл описания автоматически вносятся соответствующие изменения. Содержимое файла представления формы определяет ее вид. При необходимости можно отобразить этот файл на экране в текстовом виде, что выполняется командой V i e w a s T e x t ( П р о с м о т р е т ь к а к т е к с т ) контекстного менюформы. При этом окно Ф о р м ы пропадает с экрана, а содержимое файла представления формы открывается в окне Редактора кода и доступно для просмотра и редактирования. Например, файл представления формы, включающей кнопку ( o b j e c t B u t t o n 1 ) и о д н о с т р о ч н ы й редактор ( o b j e c t E d i t 1 >,содержит следующий текст:object Forml: TFormlLeft = 192Top = 133Width = 544Height = 375Caption = 'Forml'Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'MS Sans Serif/ I.
Borland С++ Builder375Font.Style = []OldCreateOrder = FalsePixelsPerlnch = 96TextHeight = 13object Button 1: TButtonLeft = 144Top = 40Width = 57Height = 49Caption = 'ButtonVTabOrder = 0endobject Editl: TEditLeft = 224Top=136Width = 57Height = 21TabOrder = 1Text = 'Editl'endendЧтобы вернуться обратно от просмотра текстового вида файла представления к просмотру внешнего вида формы, нужно выполнить команду V i e w a sF o r m ( П р о с м о т р е т ь к а к ф о р м у ) также контекстного меню формы.Файл представления содержит перечень всех объектов формы, включаясаму форму, а также свойства этих объектов.
Для каждого объекта указывается его тип; для формы ее тип (класс) T F o r m 1 описывается в модуле этой формы. Если в строчке C a p t i o n = ' F o r m l ' , определяющей заголовок формы, вместо F o r m l ввести, например, текст Первая форма, то заголовок ф о р м ыизменится на новый. Однако на практике подобные действия обычно выполняются в окне Инспектора объектов.Повторное открытие окна формы выполняется командой V i e w \ F o r m s( П р о с м о т р \ Ф о р м ы ) или комбинацией клавиш <Shift>+<F12>, после чегооткрывается диалоговое окно V i e w F o r m ( П р о с м о т р ф о р м ) , в списке которого и выбирается нужная форма.Одновременно можно отобразить на экране несколько форм.
Д л я закрытия того или иного окна Ф о р м ы нужно выполнить команду F i l e \ C l o s e( Ф а й л \ 3 а к р ы т ь ) или щелкнуть мышью на кнопке закрытия соответствующего окна.Заголовочный файл модуля формы содержит описание класса формы. Например, для формы, на которой размещены кнопка (Button 1), надпись(Labell) и однострочный редактор (Editl), заголовочный файл модуля формы содержит следующий код:Часть 3.
Современные СУБД и их применение376И#ifndefUnit1H#define U n i t l H//#include#include#include#include//<Classes.hpp><Controls.hpp><StdCtrls.hpp><Forms.hpp>class TForml : public TForm{published:/ / IDE-managed ComponentsTButton * Button 1;TLabel* L a b e l l ;TEdit *Edit1;void _ f a s t c a l l Button 1Click(TObject *Sender);private:/ / User declarationspublic:/ / User declarations_ f a s t c a l l T F o r m l (TComponent* Owner);};//extern PACKAGE T F o r m l *Form1;//#endifВ начале заголовочного файла содержатся директивы препроцессора, подключаемые автоматически.