Добавление PzlPort в приложение: различия между версиями

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

 
(не показаны 23 промежуточные версии этого же участника)
Строка 1: Строка 1:
{{copyright}}
Elementary PzlStudio не предусматривает операции по созданию новых проектов исполняемых приложений со встроенными средствами pzl-Системы. Однако Elementary PzlStudio позволяет включить pzl-Систему в любое приложение, созданное ранее.  
Elementary PzlStudio не предусматривает операции по созданию новых проектов исполняемых приложений со встроенными средствами pzl-Системы. Однако Elementary PzlStudio позволяет включить pzl-Систему в любое приложение, созданное ранее.  


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


Перечень свойств в вызванной форме включает
Перечень свойств в вызванной форме включает
*[[#Целевой проект|Vip Project File]] - целевой проектный файл
*[[#Целевой Проект|Vip Project File]] - целевой проектный файл
*[[#Уровень лицензии|License Level]] - уровень лицензии
*[[#Уровень лицензии|License Level]] - уровень лицензии
*[[#Библиотека Pzl-Системы|Container Library]] - имя библиотеки
*[[#Библиотека Pzl-Системы|Container Library]] - имя библиотеки
Строка 24: Строка 26:
Кнопка '''Close (Закрыть)''' закрывает форму.
Кнопка '''Close (Закрыть)''' закрывает форму.


====Выполнение операции====
=Выполнение операции=
_NOTOC_
 
При успешном выполнении операции в окно сообщений среды Elementary PzlStudio выводится отчет о произведенных изменениях проекте.
При успешном выполнении операции в окно сообщений среды Elementary PzlStudio выводится отчет о произведенных изменениях в проекте.


[[Изображение:PzlPortAddedSuccessfullyReport.png]]
[[Изображение:PzlPortAddedSuccessfullyReport.png]]
Строка 39: Строка 41:


[[Изображение:PzlPortReplacedSuccessfullyReport.png]]
[[Изображение:PzlPortReplacedSuccessfullyReport.png]]
Возвратившись теперь к IDE, можно откомпилировать проект исполняемого приложения.
Пример проекта после компиляции приведен ниже
[[Изображение:PzlSystemAddedToMainApplicaion.png]]
В результате работы Elementary PzlStudio добавился раздел $(SpbSolutions) со всеми ниже лежащими файлами.
Добавлен и вызов предиката инициализации Pzl-Системы pzlPort::init()
<vip>
clauses
  run():-
    pzlPort::init(), %<--- Добавлен
    TaskWindow = taskWindow::new(),
    TaskWindow:show().
</vip>
Теперь, если необходимо, в среде IDE, пользуясь текстовым редактором, можно добавить назначение файла реестра компонент:
<vip>
clauses
  run():-
    pzlPort::init(),
    pzlPort::setComponentRegisterFileName("РегистрКомонент.pzr"),
    TaskWindow = taskWindow::new(),
    TaskWindow:show().
</vip>


=Целевой Проект=
=Целевой Проект=
Целевой проектный файл - это файл проекта системы программирования Visual Prolog c расширением .prj6.
Целевой проект - это '''проект исполняемого приложения''', в который должна быть добавлена pzl-Система. Целевой проект представляется файлом проекта системы программирования Visual Prolog c расширением .prj6.
 
Поэтому для включения pzl-Системы в проект исполняемого приложения необходимо установить имя проектного файла.
 
При первом открытии формы это поле пустое и непосредственное редактирование в нем невозможно.
Нажатие на кнопку справа при активной строке вызывает диалог для выбора файла проекта.
 
Проект может быть любым - с пользовательским интерфейсом - на базе VPI или GUI, или без пользовательского интерфейса - консольный, в том числе и предназначенный для использования в качестве Web-приложения.
 
К моменту установки имени проектного файла проект должен существовать.
 
Если Вы создаете проект на основе pzl-технологии "с чистого листа", то необходимо средствами IDE создать новый проект, установив для него все необходимые свойства, затем проект построить  и сохранить (Ctrl-S).
 
Если Ваш проект уже создан, то он уже готов для включения в него pzl-Системы.
 
Закрывать проект в IDE перед включением в него pzl-Системы не обязательно - достаточно сохранить его (Ctrl-S).
 
Версия Visual Prolog, которой создан проект, должна быть совместима с версией Elementary PzlStudio. Перечень версий системы Visual Prolog, с которыми совместима Elementary PzlStudio, указывается в About.


=Уровень лицензии=
=Уровень лицензии=
Pzl-Система использует принцип лицензирования.
Лицензии различаются по уровням:
*Public - публичная
*Commercial - коммерческая
*Exclusive - эксклюзивная (исключительная)
*SuperExclusive
Уровень лицензии устанавливается:
*для главного приложения - библиотекой pzlPort_X.lib
*для pzl-Контейнера - библиотекой pzlContainer_X.lib
где X - идентификатор уровня лицензии.
Лицензию уровня Public может иметь только pzl-Контейнер. Главное приложение не может иметь лицензию уровня Public.
Соответствие уровня лицензии и идентификатора библиотеки приведено ниже:
*Commercial - pzlPort_C.lib
*Exclusive - pzlPort_EX.lib  (X - персонифицирующий идентификатор)
*SuperExclusive pzlPort_SE.lib
Поэтому при включении pzl-Системы в главное приложение Вы должны установить уровень лицензии, которым должно обладать Ваше приложение. Выбор уровня лицензии однозначно определяет выбор имени pzl-библиотеки, которая будет включена в проект. В случае, если выбирается уровень лицензии Exclusive, то этому уровню может соответствовать множество библиотек уровня Exclusive.
PzlStudio предлагает значение по умолчанию - Commercial, которому соответствует библиотека PzlPort_C.lib.
При выборе уровня лицензии, Elemantary PzlStudio автоматически установливает имя библиотеки в поле '''''Container Library''''' (это поле не редактируется, а является справочным). Если выбирается уровень лицензии Exclusive, то Вам предлагается файловый диалог со списком имеющихся в Вашем распоряжении библиотек. Вы должны выбрать одну из библиотек, относящися к библиотекам уровня Exclusive. Если выбрана библиотека, не относящаяся к уровню Exclusive, то появляется сообщение
[[Изображение:PzlPortLicenseLevelErrorDlg.png]]


=Библиотека Pzl-Системы=
=Библиотека Pzl-Системы=
Это поле не редактируется и является справочным. Отражает имя библиотеки pzlPort_X.lib, соответствующее уровню [[#Уровень лицензии|лицензии]] главного приложения.


=Версия Pzl-Контейнера=
=Версия Pzl-Контейнера=
Версия Pzl-Конейнера является строкой, контролируемой только пользователем. Все, что делает Elementary PzlStudio с этой информацией - помещает ее в качестве значения константы pzlContainerVersion_C в файле PzlConfig.i после его создания.
<vip>
interface iPzlConfig
constants
    pzlContainerVersion_C="1.0;001".
% Container Configuration
constants
end interface iPzlConfig
</vip>


=Атрибуты из базовых свойств=
=Атрибуты из базовых свойств=
Строка 55: Строка 143:
*Copyright
*Copyright
устанавливаются в [[Установка Базовых Свойств#Company| Базовых свойствах]] и здесь могут быть переопределены в случае, отличном от типового. Если Вы их здесь изменили, то значения этих параметров в [[Установка Базовых Свойств#Company| Базовых свойствах]] останутся неизменными.
устанавливаются в [[Установка Базовых Свойств#Company| Базовых свойствах]] и здесь могут быть переопределены в случае, отличном от типового. Если Вы их здесь изменили, то значения этих параметров в [[Установка Базовых Свойств#Company| Базовых свойствах]] останутся неизменными.
Имея приложение, которое должно работать с использованием Pzl-Технологии, следует, обратившись к Elementary PzlStudio, выполнить операцию по добавлению pzlPort в это приложение. Добавление PzlPort в приложение полностью обеспечивает включение всех необходимых средств pzl-Системы в проект исполняемого приложения.
Возвратившись теперь к IDE, можно, пользуясь текстовым редактором IDE, добавить процедуры инициализации pzlPort и откомпилировать проект исполняемого приложения.


=Ссылки=
=Ссылки=
[[Категория:VpPuZzle]]
[[Категория:VpPuZzle]]

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

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

Elementary PzlStudio не предусматривает операции по созданию новых проектов исполняемых приложений со встроенными средствами pzl-Системы. Однако Elementary PzlStudio позволяет включить pzl-Систему в любое приложение, созданное ранее.

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

Форма для включения pzl-Системы в приложение вызывается через меню Tools/Add/Port to Executable. AddPzlPort.png

Перечень свойств в вызванной форме включает

  • Vip Project File - целевой проектный файл
  • License Level - уровень лицензии
  • Container Library - имя библиотеки
  • Container Version - версия контейнера
  • Company - имя компании
  • Author - имя автора
  • Copyright - авторские права

Редактирование значений свойств производится в правой части таблицы либо непосредственным редактированием (если допускается), либо вызовом следующего уровня редактирования нажатием на кнопку справа в активной строке. Двойной щелчек на поле редактирования равносилен нажатию на кнопу справа.

Операция выполняется по нажатию на кнопку Add (Добавить).

Кнопка может быть неактивной, если введенных данных недостаточно для выполнения операции.

После выполнения операции форма остается активной и Вы можете добавить pzl-Систему к любому другому приложению.

Кнопка Close (Закрыть) закрывает форму.

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

При успешном выполнении операции в окно сообщений среды Elementary PzlStudio выводится отчет о произведенных изменениях в проекте.

PzlPortAddedSuccessfullyReport.png

Если Pzl-система уже была ранее включена в приложение, определяемое целевым проектом, то сообщение об этом появится и предложит продолжить включение или отказаться от выполнения операции.

AddPortReplacementWarning.png

Вы можете продолжить выполнение операции, если необходимо, например, изменить имя библиотеки или уровень лицензии.

Отчет о выполненных замещениях будет выведен в Окно сообщений среды

PzlPortReplacedSuccessfullyReport.png

Возвратившись теперь к IDE, можно откомпилировать проект исполняемого приложения.

Пример проекта после компиляции приведен ниже

PzlSystemAddedToMainApplicaion.png

В результате работы Elementary PzlStudio добавился раздел $(SpbSolutions) со всеми ниже лежащими файлами.

Добавлен и вызов предиката инициализации Pzl-Системы pzlPort::init()

clauses
  run():-
    pzlPort::init(), %<--- Добавлен 
    TaskWindow = taskWindow::new(),
    TaskWindow:show().

Теперь, если необходимо, в среде IDE, пользуясь текстовым редактором, можно добавить назначение файла реестра компонент:

clauses
  run():-
    pzlPort::init(),
    pzlPort::setComponentRegisterFileName("РегистрКомонент.pzr"),
    TaskWindow = taskWindow::new(),
    TaskWindow:show().

Целевой Проект

Целевой проект - это проект исполняемого приложения, в который должна быть добавлена pzl-Система. Целевой проект представляется файлом проекта системы программирования Visual Prolog c расширением .prj6.

Поэтому для включения pzl-Системы в проект исполняемого приложения необходимо установить имя проектного файла.

При первом открытии формы это поле пустое и непосредственное редактирование в нем невозможно. Нажатие на кнопку справа при активной строке вызывает диалог для выбора файла проекта.

Проект может быть любым - с пользовательским интерфейсом - на базе VPI или GUI, или без пользовательского интерфейса - консольный, в том числе и предназначенный для использования в качестве Web-приложения.

К моменту установки имени проектного файла проект должен существовать.

Если Вы создаете проект на основе pzl-технологии "с чистого листа", то необходимо средствами IDE создать новый проект, установив для него все необходимые свойства, затем проект построить и сохранить (Ctrl-S).

Если Ваш проект уже создан, то он уже готов для включения в него pzl-Системы.

Закрывать проект в IDE перед включением в него pzl-Системы не обязательно - достаточно сохранить его (Ctrl-S).

Версия Visual Prolog, которой создан проект, должна быть совместима с версией Elementary PzlStudio. Перечень версий системы Visual Prolog, с которыми совместима Elementary PzlStudio, указывается в About.

Уровень лицензии

Pzl-Система использует принцип лицензирования.

Лицензии различаются по уровням:

  • Public - публичная
  • Commercial - коммерческая
  • Exclusive - эксклюзивная (исключительная)
  • SuperExclusive

Уровень лицензии устанавливается:

  • для главного приложения - библиотекой pzlPort_X.lib
  • для pzl-Контейнера - библиотекой pzlContainer_X.lib

где X - идентификатор уровня лицензии.

Лицензию уровня Public может иметь только pzl-Контейнер. Главное приложение не может иметь лицензию уровня Public.

Соответствие уровня лицензии и идентификатора библиотеки приведено ниже:

  • Commercial - pzlPort_C.lib
  • Exclusive - pzlPort_EX.lib (X - персонифицирующий идентификатор)
  • SuperExclusive pzlPort_SE.lib

Поэтому при включении pzl-Системы в главное приложение Вы должны установить уровень лицензии, которым должно обладать Ваше приложение. Выбор уровня лицензии однозначно определяет выбор имени pzl-библиотеки, которая будет включена в проект. В случае, если выбирается уровень лицензии Exclusive, то этому уровню может соответствовать множество библиотек уровня Exclusive.

PzlStudio предлагает значение по умолчанию - Commercial, которому соответствует библиотека PzlPort_C.lib.

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

PzlPortLicenseLevelErrorDlg.png

Библиотека Pzl-Системы

Это поле не редактируется и является справочным. Отражает имя библиотеки pzlPort_X.lib, соответствующее уровню лицензии главного приложения.

Версия Pzl-Контейнера

Версия Pzl-Конейнера является строкой, контролируемой только пользователем. Все, что делает Elementary PzlStudio с этой информацией - помещает ее в качестве значения константы pzlContainerVersion_C в файле PzlConfig.i после его создания.

interface iPzlConfig
constants
    pzlContainerVersion_C="1.0;001".
 
 % Container Configuration
constants
 
end interface iPzlConfig

Атрибуты из базовых свойств

Последние три позиции в форме

  • Company
  • Author
  • Copyright

устанавливаются в Базовых свойствах и здесь могут быть переопределены в случае, отличном от типового. Если Вы их здесь изменили, то значения этих параметров в Базовых свойствах останутся неизменными.

Ссылки