Создание Pzl-Компоненты: различия между версиями
(Новая: Pzl-Компонента - это пакет системы программирования Visual Prolog. IDE системы Visual Prolog создает пакеты при откры...) |
|||
(не показаны 32 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
Pzl-Компонента - это пакет системы программирования Visual Prolog. IDE системы Visual Prolog создает | {{copyright}} | ||
Pzl-Компонента - это пакет системы программирования Visual Prolog. IDE системы Visual Prolog создает и помещает пакет в текущий проект. Elementary PzlStudio не работает с открытыми проектами и, соответственно, выполняет лишь элементарную операцию создания pzl-компоненты, независомо от проекта. Этот пакет далее может быть помещен в любой pzl-контейнер. | |||
При создании pzl-Компоненты заполняется форма, содержащая такие параметры pzl-Компоненты, как идентификатор, условное наименование, способность к автономному запуску, имя базового класса и имя базового интерфейса, место размещения в дисковом пространстве. | При создании pzl-Компоненты заполняется форма, содержащая такие параметры pzl-Компоненты, как идентификатор, условное наименование, способность к автономному запуску, имя базового класса и имя базового интерфейса, место размещения в дисковом пространстве. | ||
Заполнив эти данные и нажав кнопку, Вы получаете готовую Pzl-Компоненту, которая теперь может быть включена в любой из pzl-контейнеров (в составе исполняемого приложения или в DLL). | Заполнив эти данные и нажав кнопку, Вы получаете готовую Pzl-Компоненту, которая теперь может быть включена в любой из pzl-контейнеров (в составе исполняемого приложения или в DLL). | ||
=Вызов операции= | |||
Форма для создания pzl-Компоненты вызывается через меню '''''File/New.../Component'''''. | |||
[[Изображение:PzlStudio_CreateNewComponent.png]] | |||
Перечень свойств в вызванной форме включает | |||
*[[#Базовая Директория Компонент|Components Base Directory]] - Базовая директория Ваших Компонент | |||
*[[#Директория pzl-Копоненты|Sub-Directory]] - Маршрут к поддиректории, в которой будет создан пакет компоненты. | |||
*[[#Имя Компоненты|Component Name]] - Имя создаваемой Компоненты (это будет имя пакета .pack) | |||
*[[#Имя Класса|Class Name]] - Имя '''Класса''' Компоненты | |||
*[[#Имя Интерфейса|Interface Name]] - Имя '''Интерфейса''' Компоненты | |||
*[[#Условное имя компоненты|Component Alias]] - '''Условное имя''' Компоненты | |||
*[[#Идентификатор компоненты|Component ID]] - '''Идентификатор''' Компоненты | |||
*[[#Автономная Запускаемость|RunAble]] - Автономная Запускаемость | |||
*[[#Пользовательский интерфейс|UI Strategy]] - Пользовательский интерфейс | |||
*[[#Атрибуты из базовых свойств|Company]] - имя компании | |||
*[[#Атрибуты из базовых свойств|Author]] - имя автора | |||
*[[#Атрибуты из базовых свойств|Copyright]] - авторские права | |||
Редактирование значений свойств производится в правой части таблицы либо непосредственным редактированием (если допускается), либо вызовом следующего уровня редактирования нажатием на кнопку справа в активной строке. Двойной щелчек на поле редактирования равносилен нажатию на кнопу справа. | |||
Операция выполняется по нажатию на кнопку '''Create (Создать)'''. | |||
Кнопка может быть неактивной, если введенных данных недостаточно для выполнения операции. | |||
После выполнения операции форма остается активной и Вы можете продолжить создание pzl-Компонент. | |||
Кнопка '''Close (Закрыть)''' закрывает форму. | |||
=Выполнение операции= | |||
При успешном выполнении операции в окно сообщений среды Elementary PzlStudio выводится отчет о создании компоненты. | |||
[[Изображение:PzlStudio CreatedNewComponentReport.png]] | |||
Созданную таким образом Pzl-Компоненту можно теперь включать в контейнеры. | |||
=Параметры для создания Pzl-Компоненты= | |||
==Базовая Директория Компонент== | |||
Собственно, это имя директории, установленной в [[Установка Базовых Свойств#User PzlComponent Location|Базовых Свойствах]]. Если в Ваших намерениях по организации директорий ничего не изменилось, можно ничего здесь не менять. | |||
Но Базовую директорию компонент можно и поменять, выбрав в качестве базовой директории для компонент другую. | |||
Двойной щелчек или нажатие на кнопку вызовут файловый диалог для выбора имени директории. Вы можете в Файловом диалоге установить и новое, не существующее имя директории. Elementary PzlStudio создаст ее, если это возможно. | |||
Если Вы изменили имя базовой директории компонент относительно того, что установлено в [[Установка Базовых Свойств#User PzlComponents Location|Базовых Свойствах]], то при закрытии формы будет задан вопрос о внесении изменения в Базовые Свойства. | |||
[[Изображение:PzlStudio_ChangeBaseComponentsDirectory.png]] | |||
Если Вы согласитесь, то Вам будет теперь предлагаться в качестве значения по умолчанию это последнее имя базовой директории компонент. | |||
==Директория pzl-Компоненты== | |||
Директория Pzl-Компоненты - это именно та директория, в которую будут помещены все файлы пакета компоненты. | |||
Директория Pzl-Компоненты следует рассматривать как маршрут (например, в форме Дир1/Дир2/Дир3 или просто Дир1), который в совокупности с Базовой директорией компонент даст окончательный маршрут к директории, где будут создаваться файлы компоненты. | |||
Поле '''Директория pzl-Компоенты''' не может быть пустым. | |||
Если директория, маршрут который создается в совокупности с Базовой директорией компоненты не существует, то она будет создана без предупреждения. | |||
Если '''Директория pzl-Компоненты''' по каким-либо причинам не может быть создана, то появится диалог с сообщением об ошибке. | |||
'''''Обращаем внимание на то, что имя конечной директории pzl-Компоненты и имя компоненты (пакета) могут различаться, хотя первоначально они будет предложены одинаковыми.''''' | |||
==Имя Компоненты== | |||
Имя компоненты определяет имя набора файлов пакета | |||
*<Имя Компоненты>.pack, | |||
*<Имя Компоненты>.ph, | |||
*<Имя Компоненты>.cl, | |||
*<Имя Компоненты>.i, | |||
*<Имя Компоненты>.pro | |||
==Имя Интерфейса== | |||
Имя интерфейса определяет базовый интерфейс компоненты, то есть интерфейс, который наделяет класс компоненты способностью порождать объект. | |||
<vip> | |||
interface iMyInterface | |||
supports pzlComponent | |||
... | |||
</vip> | |||
Базовый интерфейс будет содержать также необходимые [[Pzl-Компонента#Предопределенные константы интерфейса pzl-компоненты|атрибуты базового интерфейса]]. | |||
Имя базового интерфейса Pzl-Компоненты не может совпадать с [[#Имя Класса|именем класса]]. Если это требование не соблюдается, то появится сообщение об ошибке. | |||
[[Изображение:PzlStudio NewComponentError SameName.png]] | |||
Имя базового интерфейса не может быть пустым. | |||
==Имя Класса== | |||
Имя класса определяет базовый класс компоненты, то есть класс, который будет использован для создания экземпляра компоненты. | |||
<vip> | |||
class myComponent : iMyComponent | |||
open core | |||
... | |||
</vip> | |||
Имя базового класса Pzl-Компоненты не может совпадать с [[#Имя Интерфейса|именем интерфейса]]. Если это требование не соблюдается, то появится сообщение об ошибке. | |||
Имя класса не может быть пустым. | |||
==Условное имя компоненты== | |||
Условное имя компоненты может быть любой (не пустой и не содержащей пробелов) строкой символов и служит для условного именования компонент, например "ТекстовыйРедактор". | |||
==Идентификатор компоненты== | |||
Идентификатор компоненты при ее назначении в форме может быть: | |||
*либо любой (не пустой и не содержащей пробелов) строкой символов | |||
*либо строкой символов, соответствующей уникальному идентификатору UID. | |||
Первая форма идентификатора получается простым набором текста, являющегося идентификатором компоненты | |||
[[Image:PzlStudio_ComponentIDAsString.png]] | |||
Вторая форма идентификатора получается нажатием кнопки справа. | |||
[[Image:PzlStudio_ComponentIDAsUID.png]] | |||
==Автономная Запускаемость== | |||
Параметр Автономной Запускаемости (RunAble) определяет возможность выполнения компонентой своей функции самостоятельно. | |||
В форме может быть выбрано одно из двух значений: '''Yes''' и '''No'''. Если выбрано '''Yes''', то компонента будет поддерживать интерфейс '''SpbRun''' | |||
<vip> | |||
interface iMyInterface | |||
supports pzlComponent | |||
supports spbRun | |||
... | |||
</vip> | |||
и в файле <Имя Компоненты>.pro будет создан код, который должен быть конкретизирован: | |||
<vip> | |||
clauses | |||
spbRun(_UserText). | |||
</vip> | |||
==Пользовательский интерфейс== | |||
Параметр Пользовательский Интерфейс определяет тип пользовательского интерфейса и выбирается из списка возможных значений: | |||
*VPI - традиционный механизм графики | |||
*GUI - объектный механизм графики | |||
*Consol - консольный - без графического интерфейса. | |||
==Атрибуты из базовых свойств== | |||
Последние три позиции в форме | |||
*Company | |||
*Author | |||
*Copyright | |||
устанавливаются в [[Установка Базовых Свойств#Company| Базовых свойствах]] и здесь могут быть переопределены в случае, отличном от типового. Если Вы их здесь изменили, то значения этих параметров в [[Установка Базовых Свойств#Company| Базовых свойствах]] не изменяются. | |||
=Ссылки= | |||
[[Категория:VpPuZzle]] |
Текущая версия на 12:38, 19 ноября 2007
Автор: Виктор Юхтенко
Pzl-Компонента - это пакет системы программирования Visual Prolog. IDE системы Visual Prolog создает и помещает пакет в текущий проект. Elementary PzlStudio не работает с открытыми проектами и, соответственно, выполняет лишь элементарную операцию создания pzl-компоненты, независомо от проекта. Этот пакет далее может быть помещен в любой pzl-контейнер.
При создании pzl-Компоненты заполняется форма, содержащая такие параметры pzl-Компоненты, как идентификатор, условное наименование, способность к автономному запуску, имя базового класса и имя базового интерфейса, место размещения в дисковом пространстве.
Заполнив эти данные и нажав кнопку, Вы получаете готовую Pzl-Компоненту, которая теперь может быть включена в любой из pzl-контейнеров (в составе исполняемого приложения или в DLL).
Вызов операции
Форма для создания pzl-Компоненты вызывается через меню File/New.../Component.
Перечень свойств в вызванной форме включает
- Components Base Directory - Базовая директория Ваших Компонент
- Sub-Directory - Маршрут к поддиректории, в которой будет создан пакет компоненты.
- Component Name - Имя создаваемой Компоненты (это будет имя пакета .pack)
- Class Name - Имя Класса Компоненты
- Interface Name - Имя Интерфейса Компоненты
- Component Alias - Условное имя Компоненты
- Component ID - Идентификатор Компоненты
- RunAble - Автономная Запускаемость
- UI Strategy - Пользовательский интерфейс
- Company - имя компании
- Author - имя автора
- Copyright - авторские права
Редактирование значений свойств производится в правой части таблицы либо непосредственным редактированием (если допускается), либо вызовом следующего уровня редактирования нажатием на кнопку справа в активной строке. Двойной щелчек на поле редактирования равносилен нажатию на кнопу справа.
Операция выполняется по нажатию на кнопку Create (Создать).
Кнопка может быть неактивной, если введенных данных недостаточно для выполнения операции.
После выполнения операции форма остается активной и Вы можете продолжить создание pzl-Компонент.
Кнопка Close (Закрыть) закрывает форму.
Выполнение операции
При успешном выполнении операции в окно сообщений среды Elementary PzlStudio выводится отчет о создании компоненты.
Созданную таким образом Pzl-Компоненту можно теперь включать в контейнеры.
Параметры для создания Pzl-Компоненты
Базовая Директория Компонент
Собственно, это имя директории, установленной в Базовых Свойствах. Если в Ваших намерениях по организации директорий ничего не изменилось, можно ничего здесь не менять.
Но Базовую директорию компонент можно и поменять, выбрав в качестве базовой директории для компонент другую.
Двойной щелчек или нажатие на кнопку вызовут файловый диалог для выбора имени директории. Вы можете в Файловом диалоге установить и новое, не существующее имя директории. Elementary PzlStudio создаст ее, если это возможно.
Если Вы изменили имя базовой директории компонент относительно того, что установлено в Базовых Свойствах, то при закрытии формы будет задан вопрос о внесении изменения в Базовые Свойства.
Если Вы согласитесь, то Вам будет теперь предлагаться в качестве значения по умолчанию это последнее имя базовой директории компонент.
Директория pzl-Компоненты
Директория Pzl-Компоненты - это именно та директория, в которую будут помещены все файлы пакета компоненты.
Директория Pzl-Компоненты следует рассматривать как маршрут (например, в форме Дир1/Дир2/Дир3 или просто Дир1), который в совокупности с Базовой директорией компонент даст окончательный маршрут к директории, где будут создаваться файлы компоненты.
Поле Директория pzl-Компоенты не может быть пустым.
Если директория, маршрут который создается в совокупности с Базовой директорией компоненты не существует, то она будет создана без предупреждения.
Если Директория pzl-Компоненты по каким-либо причинам не может быть создана, то появится диалог с сообщением об ошибке.
Обращаем внимание на то, что имя конечной директории pzl-Компоненты и имя компоненты (пакета) могут различаться, хотя первоначально они будет предложены одинаковыми.
Имя Компоненты
Имя компоненты определяет имя набора файлов пакета
- <Имя Компоненты>.pack,
- <Имя Компоненты>.ph,
- <Имя Компоненты>.cl,
- <Имя Компоненты>.i,
- <Имя Компоненты>.pro
Имя Интерфейса
Имя интерфейса определяет базовый интерфейс компоненты, то есть интерфейс, который наделяет класс компоненты способностью порождать объект.
interface iMyInterface supports pzlComponent ...
Базовый интерфейс будет содержать также необходимые атрибуты базового интерфейса.
Имя базового интерфейса Pzl-Компоненты не может совпадать с именем класса. Если это требование не соблюдается, то появится сообщение об ошибке.
Имя базового интерфейса не может быть пустым.
Имя Класса
Имя класса определяет базовый класс компоненты, то есть класс, который будет использован для создания экземпляра компоненты.
class myComponent : iMyComponent open core ...
Имя базового класса Pzl-Компоненты не может совпадать с именем интерфейса. Если это требование не соблюдается, то появится сообщение об ошибке.
Имя класса не может быть пустым.
Условное имя компоненты
Условное имя компоненты может быть любой (не пустой и не содержащей пробелов) строкой символов и служит для условного именования компонент, например "ТекстовыйРедактор".
Идентификатор компоненты
Идентификатор компоненты при ее назначении в форме может быть:
- либо любой (не пустой и не содержащей пробелов) строкой символов
- либо строкой символов, соответствующей уникальному идентификатору UID.
Первая форма идентификатора получается простым набором текста, являющегося идентификатором компоненты
Вторая форма идентификатора получается нажатием кнопки справа.
Автономная Запускаемость
Параметр Автономной Запускаемости (RunAble) определяет возможность выполнения компонентой своей функции самостоятельно.
В форме может быть выбрано одно из двух значений: Yes и No. Если выбрано Yes, то компонента будет поддерживать интерфейс SpbRun
interface iMyInterface supports pzlComponent supports spbRun ...
и в файле <Имя Компоненты>.pro будет создан код, который должен быть конкретизирован:
clauses spbRun(_UserText).
Пользовательский интерфейс
Параметр Пользовательский Интерфейс определяет тип пользовательского интерфейса и выбирается из списка возможных значений:
- VPI - традиционный механизм графики
- GUI - объектный механизм графики
- Consol - консольный - без графического интерфейса.
Атрибуты из базовых свойств
Последние три позиции в форме
- Company
- Author
- Copyright
устанавливаются в Базовых свойствах и здесь могут быть переопределены в случае, отличном от типового. Если Вы их здесь изменили, то значения этих параметров в Базовых свойствах не изменяются.