Создание Pzl-Контейнера
Автор: Виктор Юхтенко
Pzl-Контейнер - это место хранения Pzl-Компонент. В этом смысле как основное исполняемое приложение, так и DLL являются Pzl-Контейнерами.
Pzl-Технология предусматривает, что основное исполняемое приложение приобретает свойства Pzl-Контейнера вместе с наделением его свойствами Pzl-Порта. Следовательно, выполнив операцию добавления PzlPort к основному исполняемому приложению, мы, тем самым, создаем и Pzl-Контейнер исполняемого приложения.
Поэтому Elementary PzlStudio не содержит операций по созданию pzl-Контейнера в главном исполняемом приложении. А операция создания pzl-Контейнера в Elementary PzlStudio означает создание DLL, которая является pzl-Контейнером.
Проект, который соответствует Dll-контейнеру может быть создан и вручную с помощью IDE, но делать это не рекомендуется, поскольку это требует знания ряда деталей структуры проекта pzl-Контейнера. Вместо этого Elementary PzlStudio предлагает весьма простую операцию создания такого проекта.
Вызвав эту операцию, следует заполнить форму с основными свойствами pzl-Контейнера, и одним нажатием на кнопку Вы получаете готовый Pzl-Контейнер. Этот контейнер затем следует открыть с помощью IDE и запустить его построение.
Вызов операции
Форма для создания pzl-Контейнера вызывается через меню File/New.../Container.
Перечень свойств в вызванной форме включает
- Containers Root Directory - Базовая директория Ваших Контейнеров
- Containers SubDirectory - Маршрут к поддиректории, в которой будет создан проект контейнера.
- Container Name - Имя создаваемого Контейнера (это будет имя проекта .prj6)
- License Level - уровень лицензии
- Container Library - имя библиотеки
- Container Version - версия контейнера
- Company - имя компании
- Author - имя автора
- Copyright - авторские права
Редактирование значений свойств производится в правой части таблицы либо непосредственным редактированием (если допускается), либо вызовом следующего уровня редактирования нажатием на кнопку справа в активной строке. Двойной щелчек на поле редактирования равносилен нажатию на кнопу справа.
Операция выполняется по нажатию на кнопку Create (Создать).
Кнопка может быть неактивной, если введенных данных недостаточно для выполнения операции.
После выполнения операции форма остается активной и Вы можете продолжить создание pzl-Контейнеров.
Кнопка Close (Закрыть) закрывает форму.
Выполнение операции
При успешном выполнении операции в окно сообщений среды Elementary PzlStudio выводится отчет о произведенных изменениях проекте.
Созданный таким образом Dll-Контейнер можно теперь открыть с помощью IDE и откомпилировать.
В проектном окне IDE пустой Dll-Контейнер, не содержащий pzl-Компонент, выглядит так
Параметры для создания Dll-Контейнера
Базовая Директория Контейнеров
Собственно, это имя директории, установленной в Базовых Свойствах. Если в Ваших намерениях по организации директорий ничего не изменилось, можно ничего здесь не менять.
Но Базовую директорию контейнеров можно и поменять, выбрав в качестве базовой директории для контейнеров другую.
Двойной щелчек или нажатие на кнопку вызовут файловый диалог для выбора имени директории. Вы можете в Файловом диалоге установить и новое, не существующее имя директории. Elementary PzlStudio создаст ее, если это возможно.
Если Вы изменили имя базовой директории контейнеров относительно того, что установлено в Базовых Свойствах, то при закрытии формы будет задан вопрос о внесении изменения в Базовые Свойства.
Если Вы согласитесь, то Вам будет теперь предлагаться в качестве значения по умолчанию это последнее имя базовой директории контейнеров.
Директория Dll-Контейнера
Директория Dll-Контейнера - это именно та директория, в которую будут помещены все файлы контейнера.
Директорию Dll-Контейнера следует рассматривать как маршрут (например, в форме Дир1/Дир2/Дир3 или просто Дир1), который в совокупности с Базовой директорией контейнеров даст окончательный маршрут к директории, где будут создаваться файлы контейнера.
Поле Директория Dll-Контейнера не может быть пустым.
Если директория, маршрут который создается в совокупности с Базовой директорией контейнеров не существует, то она будет создана без предупреждения.
Если Директория Dll-Контейнера по каким-либо причинам не может быть создана, то появится диалог с сообщением об ошибке.
Обращаем внимание на то, что имя конечной директории Dll-Контейнера и имя контейнера (проекта) могут различаться, хотя первоначально они будет предложены одинаковыми. Это несколько отличается от правила, действующего в IDE системы Visual Prolog. Там, задав имя проекту, Вы однозначно определяете и имя директории, в которую будут сгенерированы файлы проекта.
Имя контейнера
Имя контейнера определяет имя файла проекта <Имя Контейнера>.prj6. Должно быть не менее 8 символов.
Уровень лицензии
Pzl-Система использует принцип лицензирования.
Лицензии различаются по уровням:
- Public - публичная
- Commercial - коммерческая
- Exclusive - эксклюзивная (исключительная)
- SuperExclusive
Уровень лицензии устанавливается:
- для главного приложения - библиотекой pzlPort_X.lib
- для pzl-Контейнера - библиотекой pzlContainer_X.lib
где X - идентификатор уровня лицензии.
Dll-Контейнер не может иметь уровень SuperExclusive. Этот уровень может иметь только PzlPort, причем, созданный компанией-разработчиком Pzl-Технологии.
Соответствие уровня лицензии и идентификатора библиотеки приведено ниже:
- Public - pzlContainer_P.lib
- Commercial - pzlContainer_C.lib
- Exclusive - pzlContainer_EX.lib (X - персонифицирующий идентификатор)
Поэтому при создании нового контейнера Вы должны установить уровень лицензии, которым должно обладать Ваш контейнер. Выбор уровня лицензии однозначно определяет выбор имени pzl-библиотеки, которая будет включена в проект. В случае, если выбирается уровень лицензии Exclusive, то этому уровню может соответствовать множество библиотек уровня Exclusive.
PzlStudio предлагает значение по умолчанию - Public, которому соответствует библиотека pzlContainer_P.lib.
При выборе уровня лицензии, Elemantary PzlStudio автоматически установливает имя библиотеки в поле Container Library (это поле не редактируется, а является справочным). Если выбирается уровень лицензии Exclusive, то Вам предлагается файловый диалог со списком имеющихся в Вашем распоряжении библиотек. Вы должны выбрать одну из библиотек, относящися к библиотекам уровня Exclusive. Если выбрана библиотека, не относящаяся к уровню Exclusive, то появляется сообщение
Библиотека Dll-Контейнера
Это поле не редактируется и является справочным. Отражает имя библиотеки pzlContainer_X.lib, соответствующее уровню лицензии главного приложения.
Версия Dll-Контейнера
Версия Pzl-Конейнера является строкой, контролируемой только пользователем. Все, что делает Elementary PzlStudio с этой информацией - помещает ее в качестве значения константы pzlContainerVersion_C в файле PzlConfig.i после его создания.
interface iPzlConfig constants pzlContainerVersion_C="1.0;001". % Container Configuration constants end interface iPzlConfig
Атрибуты из базовых свойств
Последние три позиции в форме
- Company
- Author
- Copyright
устанавливаются в Базовых свойствах и здесь могут быть переопределены в случае, отличном от типового. Если Вы их здесь изменили, то значения этих параметров в Базовых свойствах не изменяются.