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

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

 
(не показано 29 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{copyright}}
Операции над Pzl-Компонентами в Pzl-Контейнерах - добавление, удаление и изменение статуса не рекомендуется делать в IDE системы Visual Prolog. Выполнение таких операций вручную с использованием IDE может привести к рассогласованию необходимых связей.
Операции над Pzl-Компонентами в Pzl-Контейнерах - добавление, удаление и изменение статуса не рекомендуется делать в IDE системы Visual Prolog. Выполнение таких операций вручную с использованием IDE может привести к рассогласованию необходимых связей.


Строка 4: Строка 6:


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


[[Изображение:PzlStudio AddComponentDialog.png]]
[[Изображение:PzlStudio AddComponentDialog.png]]


Эта же форма позволяет изменить статус Pzl-Компоненты в Pzl-Контейнере.
Для подготовки к выполнению операции в форме должны быть выбраны Pzl-Контейнер ('''Container Project'''), которому соответствует файл проекта .prj6 и Pzl-Компонента ('''Component Package'''), которой соответствует Файл пакета компоненты .pack.
 
Pzl-контейнером может быть как главное приложение, так и DLL-контейнер. Если контейнером является главное исполняемое приложение, то в него предварительно  должен быть добавлен PzlPort. Если это DLL - то это должен быть именно Pzl-контейнер на основе DLL, созданный с помощью интрумента [[Создание Pzl-Контейнера|Elemntary PzlStudio]].
 
Дальнейшие действия определяются тем, какая операция должна быть выполнена.
 
=Выполнение операции=
=Выполнение операции=
Для подготовки к выполнению операции в форме должны быть выбраны Pzl-Контейнер ('''Container Project'''), которому соответствует файл проекта .prj6 и Pzl-Компонента ('''Component Package'''), которой соответствует Файл пакета компоненты .pack.
Выполнение операции осуществляется по нажатию одной из кнопок на панели:
*'''Add As Original''' - добавить в качестве оригинала
*'''Add As Proxy''' - Добавить в качестве представителя (Proxy)
*'''Remove''' - удалить
*'''Convert To Proxy''' - преобразовать в представителя (Proxy)
 
После выполнения операции в Oкне Cообщений (Messages) появляется отчет о выполнении операции.


Параметр '''Components Root Directory''' (Базовая директория компонент) установлен в [[Установка Базовых Свойств|Базовых свойствах]], является справочным и не редактируется.
После выполнения операции следует перейти к IDE системы Visual Prolog, открыть проект (если он не открыт) и откомпилировать. Детали выполнения операций и рекоментации приведены ниже.


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


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


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


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


Если Вы добавляете в данный контейнер представителя Pzl-Компоненты, то это означает, что эта pzl-Компонента находится в каком-либо контейнере (Вы можете не знать, где именно), а все классы данного контейнера взаимодействуют с ней через ее представителя, находящегося в данном контейнере.
Сообщение в Окне сообщений  подтвердит выполнение операции.
 
[[Изображение: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 может привести к рассогласованию необходимых связей.
Удаление pzl-Компоненты из Pzl-Контейнера рекомендуется осуществлять с помощью Elementary PzlStudio. Выполнение такой операции вручную с использованием IDE может привести к рассогласованию необходимых связей.


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


Далее Вы выбираете имя пакета Pzl-Компоненты, который должен быть удален.
[[Изображение:PzlStudio_ComponentRemovedSuccessfulyMSG.png‎]]
Нажав кнопку, Вы удаляете компоненту с заданным именем пакета, независимо от того, оригинальная компонента удаляется или ее представитель (proxy).
 
Теперь следует вернуться к IDE, если проект контейнера был ранее открыт, или в IDE открыть модифицированный проект.
 
После удаления pzl-Компоненты следует произвести полную перекомпиляцию проекта с использованием '''Rebuild All'''.
 
Удаление pzl-Компоненты может привести к нарушению целостности проекта Pzl-Контейнера. Это справедливо, если какие-либо пакеты содержат обращения к удаленной Pzl-компоненте. Строго говоря, удаление Pzl-Компоненты в таких случаях является некорректной операцией. Правильнее было бы изменить статус pzl-Компоненты, преобразовав ее в представителя (Proxy).
 
Преобразование не требуется, если одновременно с удалением данной Pzl-компоненты из данного Pzl-контейнера синхронно удаляютя и пакеты, обращающиеся к ней.
 
Если взаимного обращения обычных или являющихся компонентами пакетов, помещенных в данный контейнер, нет, то побочных явлений не должно возникать.


==Изменение Статуса pzl-Компоненты==
==Изменение Статуса pzl-Компоненты==
Как уже упоминалось, Pzl-Компонента может присутствовать в Pzl-Контейнере либо непосредственно, либо она представлена в контейнере своим представителем.
Pzl-Компонента может иметь статус '''Ориганал''' или '''Представитель''' (Proxy).
 
При добавлении Pzl-Компоненты в Pzl-Контейнер статус компоненты определяется типом операции: добавление в качестве  Оригинала или в качестве Представителя.


Пользуясь Elementary PzlStudio, Вы можете изменить статус pzl-Компоненты с оригинального на Proxy и обратно.
Пользуясь Elementary PzlStudio, Вы можете изменить статус pzl-Компоненты с оригинального на Proxy и обратно.
===Конвертация в Proxy===
Изменение статуса с оригинального на Proxy производится простым нажатием на кнопку '''Convert To Proxy''' (Преобразовать в Proxy). В Окне сообщений появится отчет о выполнении операции.
[[Изображение:PzlStudio_ConvertOriginalToProxyMSG.png]]
Теперь надо перейти к IDE и откомпилировать проект.
===Конвертация в Оригинал===
Форма не имеет явной операции по преобразованию ствтуса Pzl-Компоненты с Proxy на Оригинал. Однако выполнение операции '''Add As Original''', несмотря на присутствие Pzl-компоненты в Pzl-контейнере, установит статус Pzl-Компоненты Оригинал. Отчет в Окне Сообщений покажет:


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


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


=Ссылки=
=Ссылки=
[[Категория:VpPuZzle]]
[[Категория: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 и откомпилировать проект.

Ссылки