Добавление/Удаление pzl-Компоненты в Pzl-Контейнер: различия между версиями

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

(Новая: Добавление pzl-Компоненты в Pzl-Контейнер рекомендуется осуществлять с помощью Elementary PzlStudio. Выполнение ...)
 
 
(не показано 39 промежуточных версий этого же участника)
Строка 1: Строка 1:
Добавление pzl-Компоненты в Pzl-Контейнер рекомендуется осуществлять с помощью Elementary PzlStudio. Выполнение такой операции вручную с использованием IDE может привести к рассогласованию необходимых связей.
{{copyright}}


Операции над 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, созданный с помощью интрумента [[Создание Pzl-Контейнера|Elemntary PzlStudio]].
Дальнейшие действия определяются тем, какая операция должна быть выполнена.
=Выполнение операции=
Выполнение операции осуществляется по нажатию одной из кнопок на панели:
*'''Add As Original''' - добавить в качестве оригинала
*'''Add As Proxy''' - Добавить в качестве представителя (Proxy)
*'''Remove''' - удалить
*'''Convert To Proxy''' - преобразовать в представителя (Proxy)
После выполнения операции в Oкне Cообщений (Messages) появляется отчет о выполнении операции.
После выполнения операции следует перейти к IDE системы Visual Prolog, открыть проект (если он не открыт) и откомпилировать. Детали выполнения операций и рекоментации приведены ниже.
==Добавление==
Не имеет значения, является ли pzl-Контейнер пустым или в нем уже содержатся другие Pzl-Компоненты. Главное - добавляемая компонента до этого не должна содержаться в данном контейнере.
Не имеет значения, является ли pzl-Контейнер пустым или в нем уже содержатся другие Pzl-Компоненты. Главное - добавляемая компонента до этого не должна содержаться в данном контейнере.


Pzl-контейнером может быть как главное приложение, так и DLL-контейнер. Для добавления Pzl-Контейнера в специальной форме Вы выбираете проект контейнера. Если это главное исполняемое приложение, то в него предварительно  должен быть добавлен PzlPort. Если это DLL - то это должен быть именно Pzl-контейнер на основе DLL.
pzl-Компонента добавляется либо как оригинальная компонента, либо как представитель pzl-Компоненты (proxy).
 
Если компонента добавляется как оригинальная компонента, то все другие классы могут ее использовать, создавая ее экземпляры и выполняя все, предусмотренные ее интерфейсами, действия. Для этого нажимается кнопка '''Add As Original''' (Добавить как оригинальную).
 
Если Вы добавляете в данный контейнер представителя Pzl-Компоненты, то это означает, что эта pzl-Компонента находится в каком-либо контейнере (Вы можете не знать, где именно), а все классы данного контейнера взаимодействуют с ней через ее представителя, находящегося в данном контейнере. В этом случае нажимается кнопка '''Add As Proxy''' (Добавить как представителя).
 
Сообщение в Окне сообщений  подтвердит выполнение операции.
 
[[Изображение:PzlStudio ComponentAddedAsOriginalMSG.png]]
 
Откройте проект с помощью IDE (если он не открыт) и откомпилируйте его.
 
В процессе компиляции возможны следующие ситуации:
#При добавлении в качестве оригинала:
##'''Если добавленный Pzl-компонент  не использует другие Pzl-компоненты''',<br/>то все предолжения IDE по включению в проект других пакетов, используемых Pzl-Компонентом, '''можно принимать''' без опасений.
##'''Если добавленный Pzl-компонент использует другие Pzl-компоненты, не включенные'''<br/> к моменту компиляции в проект Pzl-Контейнера, то '''необходимо отказаться''' от предложения IDE по включению такой компоненты в данный проект.<br/>'''Включение таких дополнительных Pzl-Компонент следует произвести только с помощью Elementary PzlStudio'''.
#При добавлении в качестве представителя проблем не должно быть. Этот случай подпадает под действие правила 1.1, приведенного выше.
 
==Удаление==
Удаление pzl-Компоненты из Pzl-Контейнера рекомендуется осуществлять с помощью Elementary PzlStudio. Выполнение такой операции вручную с использованием IDE может привести к рассогласованию необходимых связей.
 
После выполнения операции в Окне Сообщений появляется отчет о выполнении операции
 
[[Изображение:PzlStudio_ComponentRemovedSuccessfulyMSG.png‎]]
 
Теперь следует вернуться к IDE, если проект контейнера был ранее открыт, или в IDE открыть модифицированный проект.
 
После удаления pzl-Компоненты следует произвести полную перекомпиляцию проекта с использованием '''Rebuild All'''.
 
Удаление pzl-Компоненты может привести к нарушению целостности проекта Pzl-Контейнера. Это справедливо, если какие-либо пакеты содержат обращения к удаленной Pzl-компоненте. Строго говоря, удаление Pzl-Компоненты в таких случаях является некорректной операцией. Правильнее было бы изменить статус pzl-Компоненты, преобразовав ее в представителя (Proxy).
 
Преобразование не требуется, если одновременно с удалением данной Pzl-компоненты из данного Pzl-контейнера синхронно удаляютя и пакеты, обращающиеся к ней.
 
Если взаимного обращения обычных или являющихся компонентами пакетов, помещенных в данный контейнер, нет, то побочных явлений не должно возникать.
 
==Изменение Статуса pzl-Компоненты==
Pzl-Компонента может иметь статус '''Ориганал''' или '''Представитель''' (Proxy).
 
При добавлении Pzl-Компоненты в Pzl-Контейнер статус компоненты определяется типом операции: добавление в качестве  Оригинала или в качестве Представителя.
 
Пользуясь Elementary PzlStudio, Вы можете изменить статус pzl-Компоненты с оригинального на Proxy и обратно.
===Конвертация в Proxy===
Изменение статуса с оригинального на Proxy производится простым нажатием на кнопку '''Convert To Proxy''' (Преобразовать в Proxy). В Окне сообщений появится отчет о выполнении операции.
 
[[Изображение:PzlStudio_ConvertOriginalToProxyMSG.png]]
 
Теперь надо перейти к IDE и откомпилировать проект.
 
===Конвертация в Оригинал===
Форма не имеет явной операции по преобразованию ствтуса Pzl-Компоненты с Proxy на Оригинал. Однако выполнение операции '''Add As Original''', несмотря на присутствие Pzl-компоненты в Pzl-контейнере, установит статус Pzl-Компоненты Оригинал. Отчет в Окне Сообщений покажет:


Далее Вы выбираете пакет, содержащий Pzl-Компоненту, и можете Выбрать один из способов добавления pzl-компоненты: pzl-Компонента добавляется либо как оригинальная компонента, либо как представитель pzl-Компоненты (proxy).  
[[Изображение:PzlStudio_ConvertProxyToOriginalMSG.png]]


Если компонента добавляется как оригинальная компонента, то все другие классы могут ее использовать, создавая ее экземпляры и выполняя все, предусмотренные ее интерфейсами, действия.  
Теперь надо перейти к IDE и откомпилировать проект.


Если Вы добавляете в данный контейнер представителя Pzl-Компоненты, то это означает, что эта pzl-Компонента находится в каком-либо контейнере (Вы можете не знать, где именно), а все классы данного контейнера взаимодействуют с ней через ее представителя, находящегося в данном контейнере.
=Ссылки=
[[Категория:VpPuZzle]]

Текущая версия на 13:38, 19 ноября 2007

Автор: Виктор Юхтенко

Операции над 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, приведенного выше.

Удаление

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

После выполнения операции в Окне Сообщений появляется отчет о выполнении операции

PzlStudio ComponentRemovedSuccessfulyMSG.png

Теперь следует вернуться к IDE, если проект контейнера был ранее открыт, или в IDE открыть модифицированный проект.

После удаления pzl-Компоненты следует произвести полную перекомпиляцию проекта с использованием Rebuild All.

Удаление pzl-Компоненты может привести к нарушению целостности проекта Pzl-Контейнера. Это справедливо, если какие-либо пакеты содержат обращения к удаленной Pzl-компоненте. Строго говоря, удаление Pzl-Компоненты в таких случаях является некорректной операцией. Правильнее было бы изменить статус pzl-Компоненты, преобразовав ее в представителя (Proxy).

Преобразование не требуется, если одновременно с удалением данной Pzl-компоненты из данного Pzl-контейнера синхронно удаляютя и пакеты, обращающиеся к ней.

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

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

Pzl-Компонента может иметь статус Ориганал или Представитель (Proxy).

При добавлении Pzl-Компоненты в Pzl-Контейнер статус компоненты определяется типом операции: добавление в качестве Оригинала или в качестве Представителя.

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

Конвертация в Proxy

Изменение статуса с оригинального на Proxy производится простым нажатием на кнопку Convert To Proxy (Преобразовать в Proxy). В Окне сообщений появится отчет о выполнении операции.

PzlStudio ConvertOriginalToProxyMSG.png

Теперь надо перейти к IDE и откомпилировать проект.

Конвертация в Оригинал

Форма не имеет явной операции по преобразованию ствтуса Pzl-Компоненты с Proxy на Оригинал. Однако выполнение операции Add As Original, несмотря на присутствие Pzl-компоненты в Pzl-контейнере, установит статус Pzl-Компоненты Оригинал. Отчет в Окне Сообщений покажет:

PzlStudio ConvertProxyToOriginalMSG.png

Теперь надо перейти к IDE и откомпилировать проект.

Ссылки