Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.15;
Скачать: CL | DM;

Вниз

Опять WebBrowser. Ожидание загрзки???   Найти похожие ветки 

 
JanMihail   (2008-01-17 18:35) [0]

Var
 HTMLNext: IHTMLElement;

procedure TForm1.Button1Click(Sender: TObject);
var
 Rez : Byte;
 s   : OleVariant;
begin
//Запускаем бесконечный цикл, но внутри есть условие выхода
 while True do
 begin
 {Получаем результат функции GetLink. Она ищет нужную ссылку на загруженной в IE(TWEbBrowser)страницы и записывает ее в HTMLNext, Если ее нет то Result = 2}
   Rez := GetLink;
   If Rez = 2 then
     break;

   HTMLNext.click;{---Вот здесь ссылка нажимается и проходит какое-то время после того как IE срабатывает и цикл успевает за это время выполниться. Т.е. IE еще находится в состоянии Busy = false и ReadyState = 4. И цикл для ожидания загрузки проходит, а потом начинается загрузка и пошла каша. Как мне подождать пока страница загрузится???}

   while true do
   begin
     if (not IE.Busy) and (IE.ReadyState = 4) then break;
     sleep(0);
     Application.ProcessMessages;
   end;
 end;

 MessageDlg("Считывание завершено!!!", mtInformation, [mbOK], 0);
end;


 
JanMihail   (2008-01-18 09:49) [1]

Спасибо! Уже сам решил. Кому интересно вот код.
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
 const pDisp: IDispatch; var URL: OleVariant);
var
 CurWebrowser: IWebBrowser;
 TopWebBrowser: IWebBrowser;
 Document: OleVariant;
 WindowName: string;
begin
 CurWebrowser := pDisp as IWebBrowser;
 TopWebBrowser := (Sender as TWebBrowser).DefaultInterface;
 if CurWebrowser = TopWebBrowser then
 begin
   Label1.Caption := Label1.Caption + #13 + "Документ полностью загружен";
   Beep;
 end
 else
 begin
   Document := CurWebrowser.Document;
   WindowName := Document.ParentWindow.Name;
   Label1.Caption := Label1.Caption + Format("Фрэйм "%s" загружен", [WindowName]) + #13;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2009.03.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
3-1216004585
Viod
2008-07-14 07:03
2009.03.15
Вернуть значение поля внутри хранимой процедуры


2-1230782516
VirusO4eK
2009-01-01 07:01
2009.03.15
Свойство формы visible стандартно стоит false. Это нормально?


15-1231430120
Unknown user
2009-01-08 18:55
2009.03.15
Приложение разделенное на процессы


2-1232693950
И. Павел
2009-01-23 09:59
2009.03.15
Как скопировать TADOQuery


2-1233060048
peroon
2009-01-27 15:40
2009.03.15
Перебор типа OleVariant