Операционная среда Elementary PzlStudio
Elementary PzlStudio (Среда с набором элементарных функций pzl-технологии) предназначена для выполнения различного рода элементарных операций над pzl-Контейнерами и pzl-Компонентами. Эти средства позволяют включить pzl-Систему в действующее приложение и регистрировать pzl-компоненты.
Elementary PzlStudio не является автономным средством и его работа координируется с IDE системы Visual Prolog.
Elementary PzlStudio модифицирует проектные файлы в следующих случаях:
- при добавлении Pzl-Системы в действующее приложение
- при создании контейнера
- при добавлении/удалении компоненты в контейнер
Поэтому перед выполнением этих операций и после их выполнения рекомендуется провести построение соответствующего проекта средствами IDE.
Поскольку добавление и удаление компонент из контейнера-проекта связано с координированным внесением изменений в различные составные части проекта, не рекомендуется выполнение этих операций вручную непосредственно в IDE. Выполнение этих операций вручную средствами IDE возможно, но необходимо знание всех составных частей проекта, где производятся изменения, и деталей их скоординированного выполнения.
Установка базовых свойств Elementary PzlStudio
Перед началом работы с Elementary PzlStudio следует назначить основные установки (Установка Опций), относящиеся ко всем последующим операциям. Такими установками являются наименование компании, имя автора, место, где будут располагаться компоненты и контейнеры и проч. Если в процессе выполнения операций над контейнерами и компонентами некоторые из этих опций будут изменены, то Elementary PzlStudio спросит сохранить ли эти установки на будущее.
Включение Pzl-Системы в исполняемое приложение
Elementary PzlStudio не предусматривает операции по созданию новых проектов исполняемых приложений со встроенными средствами pzl-Системы. Однако Elementary PzlStudio позволяет любое приложение дополнить средствами pzl-Системы - добавить PzlPort.
Поэтому для создания приложения, использующего pzl-технологию, необходимо сначала средствами IDE создать приложение с необходимыми свойствами, откомпилировать его и сохранить (Ctrl-S).
Если у Вас уже есть готовое приложение, в которое необходимо добавить pzl-Систему, то следует его предварительно откомпилировать и сохранить (Ctrl-S).
Имея приложение, которое должно работать с использованием Pzl-Технологии, следует, обратившись к Elementary PzlStudio, выполнить операцию по добавлению pzlPort в это приложение (Добавление PzlPort в приложение). Добавление PzlPort в приложение полностью обеспечивает включение всех необходимых средств pzl-Системы в проект исполняемого приложения.
Возвратившись теперь к IDE, можно, пользуясь текстовым редактором IDE, добавить процедуры инициализации pzlPort и откомпилировать проект исполняемого приложения.
Создание 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-Компоненты
Pzl-Компонента - это пакет системы программирования Visual Prolog. IDE системы Visual Prolog создает пакеты при открытом проекте и помещает такой пакет в этот открытый проект. Elementary PzlStudio не работает с открытыми проектами и, соответственно, содержит лишь элементарную операцию по созданию pzl-компоненты, как пакета, независомо от проекта. Этот пакет далее может быть помещен в любой pzl-контейнер.
При создании pzl-Компоненты заполняется форма, содержащая такие параметры pzl-Компоненты, как идентификатор, условное наименование, способность к автономному запуску, имя базового класса и имя базового интерфейса, место размещения в дисковом пространстве.
Заполнив эти данные и нажав кнопку, Вы получаете готовую Pzl-Компоненту, которая теперь может быть включена в любой из pzl-контейнеров (в составе исполняемого приложения или в DLL).
Добавление Pzl-Компоненты в Pzl-Контейнер
Добавление pzl-Компоненты в Pzl-Контейнер рекомендуется осуществлять с помощью Elementary PzlStudio. Выполнение такой операции вручную с использованием IDE может привести к рассогласованию необходимых связей.
Не имеет значения, является ли pzl-Контейнер пустым или в нем уже содержатся другие Pzl-Компоненты. Главное - добавляемая компонента до этого не должна содержаться в данном контейнере.
Pzl-контейнером может быть как главное приложение, так и DLL-контейнер. Для добавления Pzl-Контейнера в специальной форме Вы выбираете проект контейнера. Если это главное исполняемое приложение, то в него предварительно должен быть добавлен PzlPort. Если это DLL - то это должен быть именно Pzl-контейнер на основе DLL.
Далее Вы выбираете пакет, содержащий Pzl-Компоненту, и можете Выбрать один из способов добавления pzl-компоненты: pzl-Компонента добавляется либо как оригинальная компонента, либо как представитель pzl-Компоненты (proxy).
Если компонента добавляется как оригинальная компонента, то все другие классы могут ее использовать, создавая ее экземпляры и выполняя все, предусмотренные ее интерфейсами, действия.
Если Вы добавляете в данный контейнер представителя Pzl-Компоненты, то это означает, что эта pzl-Компонента находится в каком-либо контейнере (Вы можете не знать, где именно), а все классы данного контейнера взаимодействуют с ней через ее представителя, находящегося в данном контейнере.
Удаление Pzl-Компоненты из Pzl-Контейнера
Удаление pzl-Компоненты из Pzl-Контейнера рекомендуется осуществлять с помощью Elementary PzlStudio. Выполнение такой операции вручную с использованием IDE может привести к рассогласованию необходимых связей.
Pzl-контейнером может быть как главное приложение, так и DLL-контейнер. Для удаления Pzl-Компоненты в специальной форме Вы выбираете проект контейнера (либо PzlPort, либо DLL-контейнер), содержащий эту pzl-Компоненту.
Далее Вы выбираете имя пакета Pzl-Компоненты, который должен быть удален. Нажав кнопку, Вы удаляете компоненту с заданным именем пакета, независимо от того, оригинальная компонента удаляется или ее представитель (proxy).
Изменение статуса Pzl-Компоненты в Pzl-Контейнере
Как уже упоминалось, Pzl-Компонента может присутствовать в Pzl-Контейнере либо непосредственно, либо она представлена в контейнере своим представителем.
Пользуясь Elementary PzlStudio, Вы можете изменить статус pzl-Компоненты с оригинального на Proxy и обратно.
Для изменения статуса Pzl-Компоненты в форме Вы выбираете проект контейнера (либо PzlPort, либо DLL-контейнер), содержащий эту pzl-Компоненту.
Далее Вы выбираете имя пакета Pzl-Компоненты, статус который должен быть изменен. Нажав кнопку, Вы изменяете статус Pzl-Компоненты.
Регистрация компоненты
Pzl-Компоненты видны из различных частей приложения, в том числе из Pzl-Контейнеров, если эти Pzl-Компоненты зарегистрированы на данном компьютере.
Каждая компонента должна быть зарегистрирована по крайней мере в одном из следующих реестров:
- в локальном файле пользователя
- в реестре LocalUser системы Windows (имя раздела HKEY_CURRENT_USER)
- в реестре LocalMashine системы Windows (имя раздела HKEY_LOCAL_MACHINE)
- в главном исполняемом приложении
Pzl-компоненты, содержащиеся в главных исполняемых приложениях, не регистрируются, но доступны для использования из DLL-контейнеров, вызванных с помощью данного Pzl-Порта.
Если компонента зарегистрирована более, чем в одном месте, то актуальным местом ее регистрации считается ближайшее место в указанном списке, двигаясь сверху вниз.
То есть, например, если pzl-Компонента зарегистрирована в локальном файле пользователя и в реестре HKEY_CURRENT_USER одновременно, то действительным местом регистрации будет считаться локальный файл пользователя.
Elementary PzlStudio предоставляет возможность:
- регистрации Pzl-Компонент в любом из выбранных мест
- снятия с регистрации компонент выбранного pzl-Контейнера
- просмотра списка pzl-компонент, данного Pzl-Контейнера
- проверки факта регистрации заданной pzl-компоненты в заданном месте
- просмотра списка компонент, зарегистрированных в данном месте регистрации
Варьируя выбором pzl-Контейнера и места регистрации можно получить полную картину состояния регистрации pzl-контейнеров и pzl-компонент на данном компьютере.
Однако, с помощью этого средства невозможно получить список pzl-компонент, содержащихся в главных исполняемых приложениях, поскольку pzl-компоненты, содержащиеся в них, не регистрируются, но доступны.