Добавление/Удаление pzl-Компоненты в Pzl-Контейнер

Материал из wikiru.visual-prolog.com

Операции над Pzl-Компонентами в Pzl-Контейнерах - добавление, удаление и изменение статуса не рекомендуется делать в IDE системы Visual Prolog. Выполнение таких операций вручную с использованием IDE может привести к рассогласованию необходимых связей.

Однако компиляция проектов, содержащих Pzl-Компоненты, должна производится в IDE, при этом следует выполнять рекомендации, приведенные ниже.

Вызов операции

Операции над Pzl-Компонентой в Pzl-Контейнере (добавление, удаление и изменение статуса производятся с помощью одной и той же формы, вызываемой через меню Tools/Add/Component To Container. Проект контейнера должен быть сохранен средствами IDE (Ctrl-S). Закрывать проект не обязательно.

PzlStudio AddComponentDialog.png

Для подготовки к выполнению операции в форме должны быть выбраны Pzl-Контейнер (Container Project), которому соответствует файл проекта .prj6 и Pzl-Компонента (Component Package), которой соответствует Файл пакета компоненты .pack.

Pzl-контейнером может быть как главное приложение, так и DLL-контейнер. Если контейнером является главное исполняемое приложение, то в него предварительно должен быть добавлен PzlPort. Если это DLL - то это должен быть именно Pzl-контейнер на основе DLL, созданный с помощью интрумента Elemntary PzlStudio.

Дальнейшие действия определяются тем, какая операция должна быть выполнена.

Выполнение операции

Выполнение операции осуществляется по нажатию одной из кнопок на панели:

  • Add As Original - добавить в качестве оригинала
  • Add As Proxy - Добавить в качестве представителя (Proxy)
  • Remove - удалить
  • Convert To Proxy - преобразовать в представителя (Proxy)

После выполнения операции в Oкне Cообщений (Messages) появляется отчет о выполнении операции.

После выполнения операции следует перейти к IDE системы Visual Prolog, открыть проект (если он не открыт) и откомпилировать. Детали выполнения операций и рекоментации приведены ниже.

Добавление

Не имеет значения, является ли pzl-Контейнер пустым или в нем уже содержатся другие Pzl-Компоненты. Главное - добавляемая компонента до этого не должна содержаться в данном контейнере.

pzl-Компонента добавляется либо как оригинальная компонента, либо как представитель pzl-Компоненты (proxy).

Если компонента добавляется как оригинальная компонента, то все другие классы могут ее использовать, создавая ее экземпляры и выполняя все, предусмотренные ее интерфейсами, действия. Для этого нажимается кнопка Add As Original (Добавить как оригинальную).

Если Вы добавляете в данный контейнер представителя Pzl-Компоненты, то это означает, что эта pzl-Компонента находится в каком-либо контейнере (Вы можете не знать, где именно), а все классы данного контейнера взаимодействуют с ней через ее представителя, находящегося в данном контейнере. В этом случае нажимается кнопка Add As Proxy (Добавить как представителя).

Сообщение в Окне сообщений подтвердит выполнение операции.

PzlStudio ComponentAddedAsOriginalMSG.png

Откройте проект с помощью IDE (если он не открыт) и откомпилируйте его.

В процессе компиляции возможны следующие ситуации:

  1. При добавлении в качестве оригинала:
    1. Если добавленный Pzl-компонент не использует другие Pzl-компоненты,
      то все предолжения IDE по включению в проект других пакетов, используемых Pzl-Компонентом, можно принимать без опасений.
    2. Если добавленный Pzl-компонент использует другие Pzl-компоненты, не включенные
      к моменту компиляции в проект Pzl-Контейнера, то необходимо отказаться от предложения IDE по включению такой компоненты в данный проект.
      Включение таких дополнительных Pzl-Компонент следует произвести только с помощью Elementary PzlStudio.
  2. При добавлении в качестве представителя проблем не должно быть. Этот случай подпадает под действие правила 1.1, приведенного выше.

<color red>Cледует иметь в виду, что при компиляции проекта после добавлении в него любого пакета, класс(ы) которого, предусматривает обращающение к любой Pzl-компоненте, необходимо отказаться от предложения IDE по включению такой компоненты в данный проект.
Включение таких дополнительных Pzl-Компонент следует произвести только с помощью Elementary PzlStudio.</color>

Удаление

Удаление pzl-Компоненты из Pzl-Контейнера рекомендуется осуществлять с помощью Elementary PzlStudio. Выполнение такой операции вручную с использованием IDE может привести к рассогласованию необходимых связей.

Pzl-контейнером может быть как главное приложение, так и DLL-контейнер. Для удаления Pzl-Компоненты в специальной форме Вы выбираете проект контейнера (либо PzlPort, либо DLL-контейнер), содержащий эту pzl-Компоненту.

Далее Вы выбираете имя пакета Pzl-Компоненты, который должен быть удален. Нажав кнопку, Вы удаляете компоненту с заданным именем пакета, независимо от того, оригинальная компонента удаляется или ее представитель (proxy).

Изменение Статуса pzl-Компоненты

Как уже упоминалось, Pzl-Компонента может присутствовать в Pzl-Контейнере либо непосредственно, либо она представлена в контейнере своим представителем.

Пользуясь Elementary PzlStudio, Вы можете изменить статус pzl-Компоненты с оригинального на Proxy и обратно.

Для изменения статуса Pzl-Компоненты в форме Вы выбираете проект контейнера (либо PzlPort, либо DLL-контейнер), содержащий эту pzl-Компоненту.

Далее Вы выбираете имя пакета Pzl-Компоненты, статус который должен быть изменен. Нажав кнопку, Вы изменяете статус Pzl-Компоненты.

Ссылки