Конференция "Сети" » Опять WebBrowser. Ожидание загрзки??? [D7, WinXP]
 
  • JanMihail (17.01.08 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 (18.01.08 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;
 
Конференция "Сети" » Опять WebBrowser. Ожидание загрзки??? [D7, WinXP]
Есть новые Нет новых   [134431   +15][b:0][p:0]