![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Друзья, подскажите пожалуйста как поступить..
Нужно выполнить действие после полной загрузки страницы в Webbrowser со всеми фреймами и прочим. Когда цепляю действие на событие "OnDocumentComplete" оно дублируется несколько раз. Нагуглил, что действие на данном событии может срабатывать несколько раз. Но как поступить, если нужно только одно срабатывание? |
#2
|
|||
|
|||
![]() Разобрался...
Вот пример, если кому вдруг нужно будет. Код:
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OLEvariant); var CurWebrowser : IWebBrowser; TopWebBrowser: IWebBrowser; Document : OLEvariant; WindowName : string; begin { TForm1.WebBrowser1DocumentComplete } CurWebrowser := pDisp as IWebBrowser; TopWebBrowser := (Sender as TWebBrowser).DefaultInterface; if CurWebrowser=TopWebBrowser then begin ShowMessage('Document is complete.') end else begin Document := CurWebrowser.Document; WindowName := Document.ParentWindow.Name; ShowMessage('Frame ' + WindowName + ' is loaded.') end; end; |
#3
|
|||
|
|||
![]() Можно еще проще.
У WebBrowser'а есть свойство, которое выставляется в TRUE, когда загрузка полностью закончена. Достаточно в цикле просто проверять это свойство. Как называется - на вскидку не помню, но погугли. |
#4
|
||||
|
||||
![]() Код:
var url: OleVariant; begin url:='http://www.delphisources.ru/'; WebBrowser.Navigate2(url); while WebBrowser.ReadyState<>READYSTATE_COMPLETE do Application.ProcessMessages; end; а это из файла справки Delphi 6: Цитата:
Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 28.10.2010 в 08:38. |