120________________________________________________Глава 2

стоит любым текстовым редактором создать такой файл, и вы получаете возмож-
ность наблюдать за ходом выполнения приложения. Конечно, реально лучше этот
механизм несколько усложнить, занося в файл Debug.txt, например, тот или иной
уровень отладки, который может читаться приложением. Тогда, ничего не изме-
няя в самом приложении можно управлять отладкой, делая ее более или менее по-
дробной.

2.4.9 C++Builder и Delphi

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

Новые версии C++Builder и Delphi выходят со сдвигом на полгода, причем
версия C++Builder выходит позже аналогичной версии Delphi. Поэтому версии
C++Builder в действительности старше версий Delphi с тем же номером.

Основное различие между C++Builder и Delphi — язык. C++Builder, как вы
уже знаете, основан на C++, a Delphi построена на основе языка Object Pascal. Но
это кардинальное отличие не мешает взаимному использованию модулей, которые
вы разрабатываете в Delphi и в C++Builder. Дело в том, что C++Builder имеет ком-
пилятор не только с языков C++ и С, но и с языков Object Pascal и турбо ассемблер.
Поэтому можно просто включать в проект C++Builder формы и модули, разрабо-
танные в среде Delphi. Пусть, например, вы хотите создать в C++Builder 4 прило-
жение с единственным модулем, который был ранее разработан в Delphi 4. Это
можно сделать следующим образом.

1. Откройте новое приложение C++Builder. Удалите из него модуль пустой фор-
мы Unitl.cpp (команда Project | Remove From Project или соответствующая быст-
рая кнопка). Сохраните проект в выделенном для него каталоге.

2. Откройте файл модуля формы .pas, который был создан в Delphi (команда File |
Open или соответствующая быстрая кнопка). Не забудьте при открытии файла
в диалоговом окне изменить шаблон поиска на *.pas.

3. Сохраните этот файл в каталоге вашего нового проекта (команда File | Save As).
Тем самым вы создали копию модуля Delphi в своем каталоге. При этом в него
перенесутся и все связанные с ним файлы, например, .dfm.

4. Включите в проект скопированный файл модуля из каталога вашего проекта
(команда Project | Add To Project или соответствующая быстрая кнопка). При
этом опять не забудьте при открытии файла в диалоговом окне изменить шаб-
лон поиска на *.pas.

5. Сохраните проект, откомпилируйте его и выполните.

И это все! Как видите, абсолютно никаких сложностей не возникает. Если вам
надо включить в проект несколько модулей Delphi, то просто надо повторить опи-
санные выше операции для каждого модуля.

Вы научились включать в проект модули, написанные на языке Object Pascal.
Если хотите, впоследствии вы можете переписать их на язык C++. У этих языков,
конечно, множество различий. Но, пожалуй, наиболее заметные синтаксические
отличия следующие:

1. Объявление переменных в Object Pascal предваряется ключевым словом var,
начинается со списка имен и завершается типом, записанным после двоето-
чия, а в C++ наоборот: объявление начинается с типа и завершается списком
имен. Аналогичная перестановка указания типа имеется и в функциях, при-
чем в C++ отсутствует ключевое слово function, используемое в Object Pascal.
Например, объявления Object Pascal