Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция Первое приложение.doc
Скачиваний:
13
Добавлен:
13.09.2019
Размер:
98.82 Кб
Скачать

Файл Project1.Cpp

/---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

USERES("Project2.res");

USEFORM("Unit1.cpp", OneForm);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TOneForm), &OneForm);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

return 0;

}

//---------------------------------------------------------------------------

В первой строке подключается заголо­вочный файл библиотеки VCL. Во второй строке записана уже встречавшаяся нам директива #pragma hdrstop.

Продолжим изучение главного программного файла. Директива USEFORM под­ключает модуль Unit1, в котором определена форма OneForm. Директива USERES подключает к генерируемому ЕХЕ-файлу так называемые ресурсы, в данном случае значок приложения. Этот значок будет виден на панели задач Windows.

Далее следует главная функция программы — WinMain. Она вызывается авто­матически при запуске Windows-приложения. Анализируя работу функции WinMain, вы обнаружите, что она обращается к некоторому объекту Application. Объект Application лежит в основе любого приложения и доступен на протяже­нии всего времени его работы. Функция WinMain вызывает у объекта Application три метода: Initialize, CreateForm и Run. Вызов метода Initialize подготавливает приложение к работе, метод CreateForm загружает и инициализирует форму OneForm, а метод Run активизирует форму и начинает выполнение приложения. Фактически время работы метода Run это время работы приложения. Выход из метода Run происходит тогда, когда пользователь закрывает главную форму приложения; в результате приложение завершается.

Никогда не изменяйте главный программный файл вручную. Оставьте эту работу для C++Builder. Добавление и удаление модулей, а также управле­ние созданием форм осуществляется с помощью команд и диалоговых окон визуальной среды.

Теперь несколько слов о файле проекта. Он содержит указания по компиля­ции и компоновке всех составляющих проект файлов. Чтобы увидеть файл проекта, выберите в меню команду View | Project Makefile.

Другие файлы проекта

Выше мы рассмотрели основные файлы проекта. Кроме них существует также файл ресурсов с расширением RES (сокращение от RESource). В нем, напри­мер, хранится значок приложения, отображаемый на панели задач. О том, как задать значок приложения, мы расскажем при обсуждении вопросов управле­ния проектом.

В проект могут входить также логически автономные элементы: точечные рисунки (BMP-файлы), значки (ICO-файлы), файлы справочников (HLP-файлы) и т. п., однако ими управляет сам программист.

Теперь можно уточнить схему, отражающую структуру проекта (рис. 3.4):

Итак, состав проекта понятен. Нужно теперь выяснить, как им управлять — создавать и сохранять проект, добавлять и удалять модули, устанавливать параметры компилятора, компилировать и запускать приложение. Этим сей­час и займемся.

УПРАBЛEHИE ПРОЕКТОМ

Создание, сохранение и открытие проекта

При старте C++Builder автоматически создается новый проект. Это сделано для вашего удобства. Если же вам потребуется создать новый проект, не перегружая C++Builder, просто выполните команду меню File | New Application. В результате старый проект будет закрыт, а вместо него создан новый. В новый проект C++Builder всегда помещает чистую форму.

В процессе разработки приложения вы добавляете на форму компоненты, пишете обработчики событий, добавляете в проект дочерние формы, в общем, проектируете приложение. Когда что-то уже сделано, имеет смысл сохранить проект. Для этого выполните команду главного меню File | Save All. Среда запросит сначала имя для программного модуля формы, а затем имя для проекта. Если файлы с указанными именами уже есть на диске, C++Builder скажет вам об этом и попросит подтвердить их перезапись.

Если вдруг понадобится заменить имя проекта на другое, воспользуйтесь ко­мандой меню File | Save Project As... Если же нужно заменить имя модуля, воспользуйтесь командой File | Save As... Операции эти элементарны и не тре­буют дальнейших пояснений.

Для открытия в C++Builder ранее сохраненного на диске проекта достаточно выполнить команду главного меню File | Open Project… На экране появится окно диалога, где вы должны указать или выбрать из представленного списка каталог и имя загружаемого проекта.

Окно Project Manager

При создании более или менее сложного приложения программист всегда должен знать, на какой стадии разработки он находится, иметь представление о составе проекта, уметь быстро активизировать нужный файл, добавить ка­кой-либо новый файл или удалить ненужный, установить параметры проекта и т. д. Для этого в C++Builder имеется окно Project Manager (так называемый менеджер проекта). Фактически это визуальный инструмент для редактирова­ния главного программного файла и файла проекта. Он вызывается из меню командой View | Project Manager.

Настройка параметров проекта в окне Project Options

Проект — вещь очень гибкая, и вы можете управлять его параметрами. Уста­новить параметры проекта можно двумя способами:

  • Вызвать диалоговое окно Project Options и выставить значения переключателей

  • Присвоить значения специальным константам в МАК-файле про­екта

Какой способ выбрать — зависит от конкретной задачи. Некоторые параметры компилятора (например, некоторые виды оптимизаций) можно выставить только в файле проекта. Однако в большинстве случаев установить значения парамет­ров проще всего с помощью диалогового окна Project Options. Чтобы его вы­звать, выберите в меню команду Options | Project или щелкните на соответствую­щей кнопке в окне менеджера проекта. На экране появится диалоговое окно, вам останется лишь установить в нем нужные значения переключателей. Диалоговое окно состоит из нескольких страниц, на них очень много парамет­ров, поэтому мы рассмотрим только те, которые используются наиболее часто.

На странице Forms можно задать главную форму приложения (Main form) и в списке Auto-create forms указать формы, которые будут создаваться одновре­менно с главной формой (рис. 3.7).

На странице Application задаются название (Title) и значок (Icon) приложения, которые будут отображаться в среде Windows на панели задач. Здесь же задается имя файла справочника (Help file), который будет вызываться автома­тически при нажатии клавиши F1 (о том, как создается файл справочника, см. главу 15) (рис. 3.8).

На странице C++ задаются параметры компилятора (рис. 3.9). Наиболее инте­ресными здесь являются две кнопки — Full debug и Release. Первая автоматически выставляет все параметры компилятора, необходимые для отладки проекта. Этой кнопкой следует пользоваться на этапе разработки проекта. Вторая кнопка выставляет параметры для получения окончательной оптимизирован­ной версии кода без отладочной информации.

На странице Pascal выставляются параметры компилятора с языка Object Pascal, встроенного в C++Builder для переносимости проектов из Delphi. Вам они не нужны.

На странице Linker задаются параметры компоновщика (рис. 3.10). Здесь сле­дует обратить внимание на параметр Use incremental linker, предназначенный для ускорения процесса компоновки за счет создания дополнительных фай­лов, хранящих неизменяемые участки кода проекта. При компоновке выпол­няемого ЕХЕ-файла стандартные библиотеки подключаются только для тех исходных модулей, которые были изменены и подвергнуты компиляции. Для остальных модулей компоновщик просто считывает участок кода из дополни­тельного файла и не тратит времени на разрешение ссылок к стандартным библиотекам.

На странице Directones/Conditionals можно задать маршруты к стандартным заголовочным файлам (Include path), маршруты к стандартным библиотекам (Library path), ввести параметры для директив условной компиляции #ifdef и #ifndef (Conditional defines) (рис. 3.11).

Обратите внимание на параметр Default, находящийся внизу и присутствую­щий на всех страницах. Он позволяет запомнить установленные значения параметров и использовать их по умолчанию при создании новых проектов.

Когда все параметры проекта установлены, C++Builder сохраняет их в файле проекта (просмотрите МАК-файл и попробуйте найти выставленные вами па­раметры). Теперь можно приступать к компиляции.