Форум: "Сети";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
ВнизWebBr Найти похожие ветки
← →
TUser (2003-11-25 10:24) [0]Help. Как мне узнать, что TWebBrowser закончил загружать документ и показал его. Пробую OnNavigateComplete, OnDownloadComplete, OnDocumentComplete. Не могу понять, когда срабатывают эти события, но точно раньше, чем документ будет показан в окне. Пробовал даже написать так
Navigate(URL);
while webbrowser1.busy do begin end;
и после этого - свой код, но busy ваще всегда равно true и бесконечно выполняется begin..end, а в окне страница не отображается.
← →
TUser (2003-11-25 15:25) [1]Нужто никто не знает?
← →
SergP (2003-11-26 03:22) [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;
← →
nikkie (2003-11-26 04:14) [3]чтобы код
while webbrowser1.busy do begin end;
не зацикливался, между begin и end нужно вставить Application.ProcessMessages.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c