Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Работа с GraphWorX32 из внешнего приложения.

 Ответить Ответить
Автор
Сообщение
iluxat Смотреть выпадающим
Новичок
Новичок


Присоединился: 25 Март 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 2
Свойства публикации Свойства публикации   Ответить, цитируя автора - iluxat Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Работа с GraphWorX32 из внешнего приложения.
    Опубликовано: 25 Март 2009 17:31
Добрый день.
подскажите как можно получать сообщения от GraphWorX32 во внешнее приложение.
Пробовал два варианта:
1. из VBA
Public WithEvents gwx As GwxDisplay
Sub test()
Set GWX = CreateObject("Gwx32.display") -
при таком объявление возникает ошибка

Dim gwx As Gwx32.GwxDisplay
Set gwx = New Gwx32.GwxDisplay
при таком объявление все запускается, но события не вызываются

gwx.FileNew
gwx.FileOpen ("test.gdf")
gwx.ShowWindow
gwx.StartRuntime
End Sub

Public Sub GWX_DisplayLoad()
MsgBox ("DisplayLoad")
End Sub

Private Sub gwx_PostRuntimeStart()
MsgBox ("PostRuntimeStart")
End Sub

Private Sub GWX_PreAnimateDisplay()
MsgBox ("DisplayLoad")
End Sub

Public Sub Workbook_Open()
test
End Sub

2. вариант из Delphi
TGwxDisplay = class(TOleServer) //определен в GWX32_TLB
....
procedure OnDisplayLoadEvent(Sender: TObject);
...

var
FGWXOleObject: TGWXDisplay;
...
FGWXOleObject := TGwxDisplay.Create(Self);
FGWXOleObject.OnDisplayLoad := OnDisplayLoadEvent;
дальше работа с загрузкой файлов и т.д.
все работает кроме событий

Вопрос: как собственно получить эти события?

Наверх
Dismay Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 01 Июнь 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 464
Свойства публикации Свойства публикации   Ответить, цитируя автора - Dismay Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Март 2009 19:34
Не совсем понятно если честно насчет внешнего приложения... Вы в чем пишите скрипт? GraphWorX32? Если да, то вам необходимо просто добавить в обработчики событий экранной формы вызовы статических методов объявленных в модуле на уровне проекта.
56FDB_Событие.rar
А если из внешнего приложения, то вам однозначно прийдется писать Hook для перехвата сообщений окна. Эту тиму часто трут на RSDN.ru там вроде даже есть примеры кода...
Наверх
iluxat Смотреть выпадающим
Новичок
Новичок


Присоединился: 25 Март 2009
Категория: Russian Federation
Online Status: Offline
Публикации: 2
Свойства публикации Свойства публикации   Ответить, цитируя автора - iluxat Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 31 Март 2009 21:48
Dismay
Цель задачи - управлять окнами GraphWorX32 из внешнего приложения. Сейчас все делаю через Hook. Но хотелось бы получить именно события. Просто в коде TLB от GraphWorX32 события есть, но получить их не получается.
Наверх
 Ответить Ответить

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz