Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WebBr [D7, Win2k, WinXP]


TUser ©   (2003-11-25 10:24:00) 

Help. Как мне узнать, что TWebBrowser закончил загружать документ и показал его. Пробую OnNavigateComplete, OnDownloadComplete, OnDocumentComplete. Не могу понять, когда срабатывают эти события, но точно раньше, чем документ будет показан в окне. Пробовал даже написать так
Navigate(URL);
while webbrowser1.busy do begin end;
и после этого - свой код, но busy ваще всегда равно true и бесконечно выполняется begin..end, а в окне страница не отображается.


nikkie   (2003-11-26 04:14:00) [1]

чтобы код
while webbrowser1.busy do begin end;
не зацикливался, между begin и end нужно вставить Application.ProcessMessages.


SergP   (2003-11-26 03:22:00) [2]

Эти события могут возникать несколько раз. Особенно они любят возникать после загрузки отдельных фреймов.

Вобщем вот я вытянул из одной своей старой проги:
функция возвращающая true если фрейм загрузился. Передается ей номер фрейма (начиная с 0).
Я хочу уже спать, поэтому ты уже сам переделай чтобы она показывала когда загружен весь документ. Т.е. все фреймы. Тут не много исправлять. Кое-что убрать и все...

function TForm1.oncomplete(const frame:integer):boolean;
var Doc: IHTMLDocument2;
Coll: IHTMLElementCollection;
begin
try
Doc:= IHTMLDocument2(WebBrowser1.Document);
except
end;
result:=false;
if (Doc <> nil) then
begin
Coll:=IHTMLElementCollection(Doc.All.Tags("FRAME"));
if (Coll.length>0) and (frame<coll.length) then
begin
with HTMLFrameElement(Coll.item(frame, varEmpty)) do
begin
if readyState="complete" then Result:=true;
end;
end;
end;
end;


TUser   (2003-11-25 15:25:00) [3]

Нужто никто не знает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо