Как работать с 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+ЛПЧ'] Примеры для ActiveXeme219.12.08 Дистрибутив содержит примеры на Delph, Visual C, Visual Basic, C++ Builder размер 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 |