84______________________________________________Глава 2

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

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

2.4.4.4 Создание отдельной копии формы

Чтобы избежать совместного владения формой несколькими приложениями,
после того, как вы включили в новое приложение форму из другого приложения,
перейдите в окно Редактора Кода в модуль этой формы и выполните команду File
Save As, сохранив модуль в каталоге нового приложения и, если хотите, под дру-
гим именем (имя изменять не обязательно). В этом случае разные приложения бу-
дут использовать совершенно разные копии одной формы и изменения одной из
них не затронут другие приложения.

Можно, конечно, создать копию формы и другими способами. Во-первых, вы
можете создать ее средствами Windows или MS DOS, просто скопировав соответст-
вующие файлы из одного каталога в другой. Только не забудьте при этом, что фор-
ма — это не только файл модуля .срр, но еще его заголовочный файл .h и файл ее
изображения .dfm. Так что копировать надо все три файла. Файл объектного моду-
ля можно не копировать, так как он будет создан C++Builder в процессе компиля-
ции.

Еще один способ создания автономной копии формы — использование меню
C++Builder. Вы можете в любой момент последовательно выполнить команды File |
Open, указав файл открываемой формы, и команду File Save As. Первая из этих
команд откроет форму, а вторая сохранит ее в указанном вами каталоге под ука-
занным именем. Преимущество такой операции заключается в том, что вам не
нужно думать о совокупности сохраняемых файлов. C++Builder автоматически
скопирует не только файл .срр, но и файлы .dfm и .h.

2.4.4.5 Заимствование форм из Депозитария

Если вы заимствуете формы из Депозитария командой File New (см. рис. 2.20 с
примерами этих форм), то имеется несколько вариантов такого заимствования. На
рис. 2.21 показана страница Forms Депозитария, содержащая пиктограммы ряда
форм. Вариант заимствования определяется тремя радиокнопками, размещенны-
ми в нижней части окна: Copy — копировать, Inherit — наследовать, Use — исполь-
зовать. Если включена кнопка Copy, то файлы формы просто будут скопированы в
ваше приложение. При этом никакой дальнейшей связи между исходной формой и
копией не будет. Вы можете спокойно изменять свойства вашей копии и это никак
не отразится на форме, хранящейся в Депозитарии. А если вы в дальнейшем
что-то измените в форме, хранящейся в депозитарии, то эти изменения никак не
затронут вашего приложения, куда вы до этого скопировали форму.

При включенной кнопке Inherit вы получите в своем проекте форму, наследую-
щую размещенной в Депозитарии. Это значит, что если вы что-то измените в фор-
ме, хранящейся в Депозитарии, то это отразится при перекомпиляции во всех про-