432______________________________________________Глава 7

Таким образом, режим Inherit целесообразно использовать для всех модулей
вашего проекта, а режим Use — для изменения базовой формы. Тогда усовершен-
ствование вами базовой формы будет синхронно сказываться на всех модулях про-
екта при их перекомпиляции.

Давайте построим приложение, которое позволит все это продемонстрировать.
Если вы проделали процедуры по включению формы в депозитарий, то можете
приступать к построению тестового проекта. А если нет — проделайте эти процеду-
ры сейчас. Если не хочется делать форму такую, как было описано, сделайте более
простую, но содержащую 2 панели — они нам потребуются для дальнейшего. То-
лько сотрите надписи на них (Caption).

Итак, построим проект, демонстрирующий различные режимы извлечения
формы из депозитария.

1. Откройте новый проект.

2. Выполните команду Project | Remove from Project... и удалите модуль Uniti и его
форму из проекта.

3. Выполните команду File | New и в окне New Items отыщите вашу форму. Вклю-
чите индикатор Copy (он включен по умолчанию) и щелкните на кнопке ОК.

4. Измените имя новой формы вашего приложения на FCopy (переименование
формы необходимо, т.к. без этого далее невозможно будет заимствовать из де-
позитария аналогичные формы).

5. Повторите команду File New, в окне New Items опять отыщите вашу форму.
Включите индикатор Inherit и щелкните на ОК.

6. Измените имя новой формы вашего приложения на FInherit.

7. Повторите в третий раз команду File New и поиск в окне New Items вашей фор-
мы. На этот раз включите индикатор Use и щелкните на ОК.

Теперь взгляните на имена модулей, появившихся в вашем проекте. Для двух
первых форм модули имеют традиционные имена — Uniti и Unit2. А вот имя тре-
тьего модуля совпадает с тем, под которым вы сохранили модуль формы перед за-
писью в депозитарий — UFBase. Это значит, что C++Builder в режиме Use вклю-
чил в ваше приложение исходный модуль хранящейся в депозитарии формы. И,
значит, любые изменения в нем приведут к изменению хранящейся формы.

Давайте сохраним проект, чтобы задать первым двум модулям более осмыс-
ленные имена.

8. Сохраните проект, задав имя файла первого модуля — UCopy, а имя второ-
го — Ulnherit. Имя файла проекта можете задать любым.

9. Разнесите формы на экране так, чтобы видеть хотя бы заголовки каждой (на-
пример, каскадом).

10. Выполните команду Project Options. Установите все формы проекта автомати-
чески создаваемыми.

11. Во всех формах установите значение свойства Visible в true, чтобы при запус-
ке приложения все они были видны.

Приложение завершено. Сохраните его и запустите. Вы увидите на экране три
одинаковые окна, различающиеся только заголовками. Закройте приложение
(окно FCopy). Измените что-нибудь в форме FCopy. Например, введите текст «Ле-
вая» в надпись (Caption) левой панели. Сохраните проект и запустите опять прило-
жение. Вы увидите, что на форме FCopy появилась введенная вами надпись, а па-
нели остальных форм по-прежнему пустые. Это очевидный результат, поскольку
форма FCopy содержится в модуле UCopy, являющемся изолированным от всех
остальных, хотя и создан как копия базового модуля UBase.