Разработчикам
Как работать с ActiveXeme
Компонент ActivesXeme может применяться разработчиками программного обеспечения для энергетики везде, где есть потребность в отображении и работе со схемной информацией внутри пользовательского приложения. Компонент предназначен для встраивания графического модуля в ПО, созданное с помощью современных средств разработки ( Borland Delphi, Borland C++ Builder, Microsoft Visual Studio и др.) широко используемых в России.
Предлагаемая система отображения графической информации основана на объектно-ориентированном графическом движке компании Модус, оптимизированном для использования в приложения для электроэнергетики. Документы в этой графической системе представляются в форматах SDE и XSDE - специализированных форматах, разработанных компанией Модус.
Эти документы готовятся с помощью графического редактора Модус. Схема SDE может состоять из нескольких разделов - страниц, на которых располагаются графические объекты с различными характеристиками. Разработчикам, использующих компонент, нет необходимости изучать названные форматы, так как компонент обеспечивает чтение и запись соответствующих файлов.
Так как ActivesXeme реализует технологию ActiveX фирмы Microsoft, он может быть легко интегрирован в Web-страницы для просмотра схем через Internet/Intranet с использованием браузера Internet Explorer.
Компонент имеет самостоятельный пользовательский интерфейс для выполнения таких операций со схемами, как:
- управление видом отображения схемы (масштабирование, скроллинг, детализация),
- навигация по схемам (переход по гиперссылкам).
Возможно хранение схем не только в виде файлов, но и в виде произвольного структурированного хранилища (Storage), или в базе данных.
Мы надеемся, что наш компонент облегчит работу тем разработчикам программного обеспечения, которые решают различные технологическими задачами, нуждающимися в графическом схемном отображении, но не имеют возможности тратить силы на создание собственных мощных графических систем.
От графического модуля к прикладной программе передается следующая информация:
- Наименование текущего выбранного объекта (над которым была нажата кнопка мыши);
- Свойства текущего объекта, доступные для чтения и модификации;
- Уведомление о наступлении событий (нажатие кнопок мыши, переходы по ссылкам);
Информация и управление, передаваемые от прикладной программы к графическому модулю:
- Актуальное состояние оборудования, показанного на схеме. Состояния, записанные в файле со схемой, могут перекрываться более свежей информацией, которая поступает, например, из ОИК.
- Управление состоянием схемы, – например, при нажатии мышью на выключатель приложение решает, какова должна быть реакция и при отсутствии запретов переключает выключатель на схеме.
- Выделение указанных приложением объектов на схеме. Позиционирование схемы к нужному объекту (если потребуется, будет открыта нужная страница схемы).
Описание и использование компонента
HTSDEForm
Технология ActivesXeme реализована в виде компонента ActiveX HTSDEForm. Далее в этом тексте эти термины можно рассматривать как синонимы, но следует помнить, что ActivesXeme – это название технологии, а HTSDEForm – ее конкретная реализация.
Установка
Для отображения схем с элементами автоматики, приборами и пользовательскими элементами требуется установка баз данных элементов фирмы Модус (см. более подробно в общей документации).
Все это обеспечивается при инсталляции комплекса программ Модус .
Использование компонента в прикладных программах
1. Зарегистрируйте компонент в системном реестре, набрав в режиме командной строки
regsvr32 htsde2.ocx
Если Вы работаете с ActivesXeme2, то Вам необходимо зарегистрировать так же следующие tlb.
sdecore.tlb, sdeapp.tlb, sde_electric.tlb.
2.Установите компонент в среде разработки. Для Borland Delphi эта процедура выглядит следующим образом
Выполните стандартную процедуру установки ActiveX компонента для Delphi, выбрав в главном меню пункт Component / Import ActiveX Control
В появившемся окне Import ActiveX, из выпадающего списка Registered Control выберите пункт ActivesXeme OCX control (если у Вас этот пункт не появился, выполните процедуру регистрации компонента заново), при этом в окне Class Names у Вас появится название нового класса HTSDEForm. Нажмите на кнопку установки компонента.
По завершении процесса компиляции и установки в среде Delphi на странице, указанной в окне Palette Page (по умолчанию ActiveX) появится новый компонент HTSDEForm.
Если Вы работаете с ActivesXeme2, то зарегистрируйте в среде разработки sdecore.tlb, sdeapp.tlb и sde_electric.tlb. Для Borland Delphi выберете в главном меню пункт Projects / Import Type Library
3. Работа с компонентом
Поместив компонент на форму, Вы получите доступ к свойствам, методам и событиям стандартным для выбранной Вами среды разработки приложения способом.
Обмен данными между графическим модулем и приложением предоставляется самим графическим модулем через его методы (свойства), предоставляемые интерфейсами. Все интерфейсы графического модуля можно условно выделить в две группы (в терминологии, введенной фирмой Модус, эти две группы называются объектными моделями).
Основной обмен данными осуществляется посредством обращения к текущему объекту. Для определения текущего объекта его нужно выбрать, указав его в окне компонента курсором мыши и нажав одну из ее кнопок.
Определить, имеется ли текущий элемент, можно с помощью метода GetTouchedView (свойство TouchedView) следующим образом:
Если GetTouchedView не равно 0, то существует текущий элемент.
Текущий объект можно также установить в результате успешного вызова функции FindView:
FindView(VIdent) - тип возвращаемого значения - целый
Описание:
Находит объект на схеме по заданному идентификатору и устанавливает его текущим
Возвращаемые значения:
S_OK - требуемый элемент найден и стал текущим
S_FALSE - требуемый элемент не найден
Параметры:
Vident (строковая переменная в формате UNICODE) - идентификатор объекта (может быть получен с помощью функции GetSNIdent - описание приведено ниже).
Более подробно о функциях можно прочитать в подробной документации Скачать документацию.
Объектные модели
- Как было уже упомянуто выше, обмен данными между графическим модулем и приложением осуществляется посредством интерфейсов, объединены в группы (объектные модели). Объектная модель1 представляет собой следующий набор интерфейсов:
IenumObjects, ISDEObjects, ISDEObject
Интерфейсы, входящие в Объектную модель2:
ISDEDocument, ISDEPages, ISDEPage, ISDEObjects2, ISDEObject2
Первичная версия графического модуля включала в себя только интерфейсы Объектной модели1. По мере развития продуктов входящих в комплекс Модус, развивался и графический модуль ActivesXeme. Поэтому, учитывая спецификацию COM, рекомендации Microsoft по организации коллекций, интерфейсов application, document и др. была введена Объектная модель2. Разумеется, вторая модель более совершенная и удобная для решения задач, поэтому считаем ее использование более предпочтительное. В будущем планируется прекратить поддержку Объектной модели 1.
Для работы со схемой в зависимости от задач можно придерживаться следующей схемы:
Первоначально, Вы имеете доступ к форме графического модуля (HTSDEForm) через интерфейс IHTSDEForm. С помощью него Вы можете управлять не только состоянием формы, но и работать со свойствами текущего объекта. Для расширения сферы деятельности Вам необходимо получить доступ к объекту SDEDocument, используя метод GetDocument (свойство Document). - Получив доступ к объекту SDEDocument, Вы получаете возможность работать с текущей страницей, получить коллекцию всех страниц схемы и коллекцию всех объектов схемы. Для последовательной работы со схемой необходимо получить доступ к объекту SDEPages, используя метод GetPages (свойство Pages).
- Объект SDEPages позволяет получить доступ к конкретной странице схемы используя метод GetItem (свойство Item). Страницы предстанут в виде объектов SDEPage .
- Объект SDEPage позволяет работать со свойствами страницы и получить коллекцию всех объектов, располагающихся на данной странице. Метод GetSDEObjects (свойство SDEObjects) возвращает объект SDEObjects2.
- Объект SDEObjects2 - коллекция (список) объектов - обеспечивает доступ к определенному объекту из данной коллекции. Метод GetItem (свойство Item) - возвращает объект SDEObject2.
Объект SDEObject2 позволяет работать со всем свойствами и характеристиками объекта схемы, к которому получен доступ.
Кроме методов, перечисленных выше, достаточно быстрый поиск элемента по SNIdent можно осуществить следующим образом:
MyObject := HTSDEForm.Document.Flat.Item [MySNIdent]
где SNIdent - уникальный идентификатор объекта.
Если необходимо выполнить поиск не по SNIdent, а по другому полю (например ключ_привязки + назначение_привязки), то необходимо выполнить следующие операции:
HTSDEForm.Document.FlatIndex := 'ключ_привязки+назначение_привязки'
(в этот момент строится нужный индекс в памяти, после этого можно искать)
MyObject := HTRootForm1.Document.Flat.Item ['IDПСТ210+ЛПЧ']
Примеры для ActiveXeme2
19.12.08
размер 12.5Мб
Версия ActiveX 5.10.7.212
Возможно при установке дистрибутив потребует следующие файлы isscript.msi, instmsia.exe, instmsiw.exe. В этом случае скачайте их и положите рядом с дистрибутивом
07.07.04
- Дистрибутив содержит примеры на Delph, Visual C, Visual Basic, C++ Builder
размер 9.5Мб
Версия ActiveX 4.0.5.110
Возможно при установке дистрибутив потребует следующие файлы isscript.msi, instmsia.exe, instmsiw.exe. В этом случае скачайте их и положите рядом с дистрибутивом
08.06.04
- Документация по АсtivesXeme2
размер 0.5Мб
14.05.04
- Дистрибутив содержит примеры на Delph, Visual C, Visual Basic, C++ Builder
размер 9.5Мб
Версия ActiveX 4.0.5.100
Возможно при установке дистрибутив потребует следующие файлы isscript.msi, instmsia.exe, instmsiw.exe. В этом случае скачайте их и положите рядом с дистрибутивом - Обновление ActivesXeme2.
размер 1.5Мб
версия 4.0.5.100 компонент протестирован для VB, VC, C++ Builder, VBA. Для работы необходимо скачать, разархивировать и запустить reg_tlb.bat
15.03.04
- Дистрибутив содержит примеры на Delph и Visual C
Возможно при установке дистрибутив потребует следующие файлы isscript.msi, instmsia.exe, instmsiw.exe. В этом случае скачайте их и положите рядом с дистрибутивом - Обновление ActivesXeme2.
версия 4.0.5.87 исправлена ошибка, проявляющаяся при работе с несколькими AX одновременно. Для работы необходимо скачать, разархивировать и запустить reg_tlb.bat
Скачать документацию для ActivesXeme