OberonCore https://forum.oberoncore.ru/ |
|
Подсистема Ctl. компоненты и события https://forum.oberoncore.ru/viewtopic.php?f=35&t=1135 |
Страница 1 из 1 |
Автор: | hothing [ Четверг, 21 Август, 2008 09:03 ] |
Заголовок сообщения: | Подсистема Ctl. компоненты и события |
Как правильно использовать объекты 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 ] |
Заголовок сообщения: | Re: Подсистема Ctl. компоненты и события |
Если не ошибаюсь, так - реализовывать абстрактные методы-события. Код: 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 ] |
Заголовок сообщения: | Re: Подсистема Ctl. компоненты и события |
Трэп вылазит, судя по приведенному коду, в ответ на метод объекта grp1. Может быть дело не в событиях (grp1_evs), а в методе объекта? |
Автор: | Вячеслав Бойко [ Четверг, 21 Август, 2008 21:33 ] |
Заголовок сообщения: | Re: Подсистема Ctl. компоненты и события |
Такая тема обсуждалась с подробными примерами Ильи Ермакова: viewtopic.php?f=27&t=224 |
Автор: | hothing [ Пятница, 22 Август, 2008 16:08 ] |
Заголовок сообщения: | Re: Подсистема Ctl. компоненты и события |
Вячеслав, спасибо за помощь! |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |