Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_N8_.doc
Скачиваний:
1
Добавлен:
24.04.2019
Размер:
123.39 Кб
Скачать

Формы

1 Включение в проект форм

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

Хороший стиль программирования

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

Включение в проект новой формы может производиться различными способами.

Если вы хотите включить новую пустую форму, вам достаточно выполнить команду File | New | Form или нажать соответствующую быструю кнопку.

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

Можно включить готовую форму в проект командой Project | Add to Project или соответствующей быстрой кнопкой. При этом, если включаемая форма имеет то же имя, которое имеет одна из уже имеющихся в проекте форм (например, Form1, если вы не привыкли изменять имена форм, принимаемые Delphi по умолчанию), то вы получите предупреждение вида: «The project already contains a form or module named Forml» — «Проект уже содержит форму или модуль с именем Forml». В результате форма откроется, но в проект не включится. Аналогичный вариант будет, если вы не присваиваете модулям уникальные имена. Если в проекте уже имеется модуль Unit1 и вы пытаетесь включить из другого каталога модуль формы, тоже имеющий имя Unit1, то вам будет выдано то же предупреждение, новый модуль загрузится, но в проект не включится.

Разрешить подобный конфликт можно следующим образом. Перейдите в окно Редактора Кода в открывшийся, но не включенный в проект модуль. Щелкните правой кнопкой мыши и во всплывшем меню выберите команду Close Page. Модуль закроется. После этого переименуйте в вашем проекте форму, вызвавшую конфликт (задайте для нее новое имя в свойстве Name). Если конфликт вызван совпадением имен модулей, то сохраните конфликтующий модуль командой File | Save As, дав ему новое имя. После этого можете повторить попытку добавления в проект новой формы.

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

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

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