38________________________________________________Глава 1

Все объекты компонентов размещаются в объектах — формах. Для каждой
формы, которую вы проектируете в своем приложении, C++Builder создает отдель-
ный модуль. Именно в модулях и осуществляется программирование задачи. В об-
работчиках событий объектов — форм и компонентов, вы помещаете все свои алго-
ритмы. В основном они сводятся к обработке информации, содержащейся в свойст-
вах одних объектов, и задании по результатам обработки свойств других объектов.
При этом вы постоянно обращаетесь к методам различных объектов. Вопросами
доступа к свойствам и методам объектов мы и займемся в дальнейших- разделах
данной главы.

Согласно принципам скрытия информации обычно текст модуля разделяют
на заголовочный файл интерфейса, который содержит объявления классов, функ-
ций, переменных и т.п., и файл реализации, в котором содержится описание функ-
ций. Стандартное расширение файлов реализации — .срр. Стандартное расшире-
ние заголовочных файлов — .h.

После того, как программа написана, на ее основе должен быть создан выпол-
няемый файл (модуль). Этот процесс осуществляется в несколько этапов.

Сначала работает препроцессор, который осуществляет преобразование исход-
ного текста. Эти преобразования препроцессор осуществляет в соответствии со спе-
циальными директивами препроцессора, которые размещаются в исходном тек-
сте. Препроцессор может в соответствии с этими директивами включать тексты од-
них файлов в тексты других, развертывать макросы — сокращенные обозначения
различных выражений и выполнять множество других преобразований.

После окончания работы препроцессора начинает работать компилятор. Его
задача — перевести тексты модулей в машинный (объектный) код. В результате
для каждого исходного файла .срр создается объектный файл, имеющий расшире-
ние .obj.

После окончания работы компилятора работает компоновщик, который объе-
диняет объектные файлы в единый загрузочный выполняемый модуль, имеющий
расширение .ехе. Этот модуль можно запускать на выполнение.

1.6.3 Структура головного файла проекта

В процессе проектирования вами приложения C++Builder автоматически со-
здает коды головного файла проекта, коды отдельных модулей и коды их заголо-
вочных файлов. Головной файл проекта содержит функцию WinMain (в дальней-
шем в этой книге будут рассматриваться практически только приложения для
Windows, использующие именно эту функцию, а не функцию main). В прочие мо-
дули вы вводите свой код, создавая обработчики различных событий. В заголовоч-
ные файлы этих модулей вы вводите свои объявления. Но головной модуль, как
правило, вы не трогаете и даже не видите его текст. Только в исключительных слу- .
чаях вам надо что-то изменять в тексте головного модуля, сгенерированном
C++Builder. Тем не менее, хотя бы ради этих исключительных случаев, надо
все-таки представлять вид головного файла проекта и понимать, что означают его
операторы.

Типичный головной файл проекта имеет следующий вид (в приведенный текст
добавлены русские комментарии):

//—————————————————————

// директивы препроцессора
ftinclude <vcl.h>
ttpragma hdrstop

// макросы, подключающие файлы'ресурсов и форм
USERES("Projectl.res");

USEFORMf"Unit 1.срр", Formi);

USEFORMf "Unj.t2.cpp", Form2);