Как работать с 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. Как было уже упомянуто выше, обмен данными между графическим модулем и приложением осуществляется посредством интерфейсов, объединены в группы (объектные модели). Объектная модель1 представляет собой следующий набор интерфейсов:
    IenumObjects, ISDEObjects, ISDEObject
    Интерфейсы, входящие в Объектную модель2:
    ISDEDocument, ISDEPages, ISDEPage, ISDEObjects2, ISDEObject2

    Первичная версия графического модуля включала в себя только интерфейсы Объектной модели1. По мере развития продуктов входящих в комплекс Модус, развивался и графический модуль ActivesXeme. Поэтому, учитывая спецификацию COM, рекомендации Microsoft по организации коллекций, интерфейсов application, document и др. была введена Объектная модель2. Разумеется, вторая модель более совершенная и удобная для решения задач, поэтому считаем ее использование более предпочтительное. В будущем планируется прекратить поддержку Объектной модели 1.

    Для работы со схемой в зависимости от задач можно придерживаться следующей схемы:

    Первоначально, Вы имеете доступ к форме графического модуля (HTSDEForm) через интерфейс IHTSDEForm. С помощью него Вы можете управлять не только состоянием формы, но и работать со свойствами текущего объекта. Для расширения сферы деятельности Вам необходимо получить доступ к объекту SDEDocument, используя метод GetDocument (свойство Document).
  2. Получив доступ к объекту SDEDocument, Вы получаете возможность работать с текущей страницей, получить коллекцию всех страниц схемы и коллекцию всех объектов схемы. Для последовательной работы со схемой необходимо получить доступ к объекту SDEPages, используя метод GetPages (свойство Pages).
  3. Объект SDEPages позволяет получить доступ к конкретной странице схемы используя метод GetItem (свойство Item). Страницы предстанут в виде объектов SDEPage .
  4. Объект SDEPage позволяет работать со свойствами страницы и получить коллекцию всех объектов, располагающихся на данной странице. Метод GetSDEObjects (свойство SDEObjects) возвращает объект SDEObjects2.
  5. Объект 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

Скачать документацию для ActivesXeme