OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 23 Апрель, 2019 05:05

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 21 Август, 2008 09:03 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 205
Откуда: Austria, Bruck
Как правильно использовать объекты CtlT.OutObject?
Код:
VAR
   grp1: OPC.OPCGroup; (* CtlT.Object *)
   grp1_evs : GroupEvents; (* CtlT.OutObject *)
...
BEGIN
        NEW(grp1_evs);
        grp1 := server.OPCGroups().Add(CtlT.Str('Test1'));
        CtlT.Connect(grp1_evs, grp1);
        ....
        grp1.AsyncRead(1, arg1, arg2, i1, i2 ); (* first call of method; TRAP 10*)
END ...

У меня вылетает TRAP. Аналогичный код на VBA работает. В чем может быть причина?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Август, 2008 18:28 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4489
Откуда: Россия, Орёл
Если не ошибаюсь, так - реализовывать абстрактные методы-события.
Код:
MODULE TestWeb;

   IMPORT
      Web := CtlSHDocVw, CtlT, StdLog;

   TYPE
      BrowserEvents = POINTER TO RECORD (Web.DWebBrowserEvents2) END;

   VAR
      w: Web.WebBrowser;
      wEvents: BrowserEvents;

   PROCEDURE (this: BrowserEvents) StatusTextChange* (Text: ARRAY OF CHAR);
   BEGIN
       StdLog.String("Statusbar text changed to " + ' "' + Text + '"');
      StdLog.Ln;
    END StatusTextChange;

   PROCEDURE (this: BrowserEvents) ProgressChange* (Progress: INTEGER; ProgressMax: INTEGER), EMPTY;
... - все абстр. методы д.б. реализованы
   PROCEDURE (this: BrowserEvents) PrivacyImpactedStateChange* (bImpacted: BOOLEAN), EMPTY;

   PROCEDURE (this: BrowserEvents) NewWindow3* (VAR ppDisp: CtlT.Object; VAR Cancel: BOOLEAN; dwFlags: INTEGER; bstrUrlContext: ARRAY OF CHAR; bstrUrl: ARRAY OF CHAR);
      (* A new, hidden, non-navigated WebBrowser window is needed. *)
   BEGIN
      StdLog.String("(NewWindow3): New WebBrowser is needed. ");
      StdLog.String("Flags = "); StdLog.Int(dwFlags);
      StdLog.String(', UrlContext = "' + bstrUrlContext + '"');
      StdLog.String(', Url = "' + bstrUrl + '"');
      StdLog.Ln;
   END NewWindow3;

   PROCEDURE Do*;
   BEGIN
      w.PUTVisible(TRUE);
      w.Navigate("http://oberoncore.ru/", NIL, NIL, NIL, NIL);
   END Do;

   PROCEDURE T1*;
   BEGIN
      w := Web.NewInternetExplorer();
      NEW(wEvents);
      CtlT.Connect(wEvents, w);
   END T1;

CLOSE
   CtlT.Disconnect(wEvents, w)
END TestWeb.
^Q TestWeb.T1
^Q TestWeb.Do


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Август, 2008 21:29 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 12:00
Сообщения: 79
Откуда: Россия, Санкт-Петербург
Трэп вылазит, судя по приведенному коду, в ответ на метод объекта grp1. Может быть дело не в событиях (grp1_evs), а в методе объекта?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 21 Август, 2008 21:33 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 12:00
Сообщения: 79
Откуда: Россия, Санкт-Петербург
Такая тема обсуждалась с подробными примерами Ильи Ермакова: viewtopic.php?f=27&t=224


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 22 Август, 2008 16:08 

Зарегистрирован: Среда, 31 Октябрь, 2007 18:58
Сообщения: 205
Откуда: Austria, Bruck
Вячеслав, спасибо за помощь!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB