| 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/  | 
|