Привет всем!!!
Столкнулся с интересной проблеммой, 2-й день болит от неё голова.
У меня есть програма в которойвыполняется такой вот код с браузером
| Код | Form1.WebBrowser1.Navigate('http://roulette.net.ua/index.php'); while pg <> 1 do Application.ProcessMessages; pg:=0;
form1.WebBrowser1.Refresh; while pg <> 1 do Application.ProcessMessages; pg:=0;
|
почему то при выполнении этого кода программа зависает на блоке while pg <> 1
т.к. он связан с кодом и программа 2-й раз в него не заходит, но при этом обновление страницы произошло
| Код | 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 pg:=1; // ShowMessage('Complete document was loaded') end else begin Document := CurWebrowser.Document; WindowName := Document.ParentWindow.Name; if WindowName = 'success' then fr:=fr+1; // ShowMessage(Format('Frame "%s" was loaded', [WindowName])); end; end;
|
если же из кода
| Код | form1.WebBrowser1.Refresh; while pg <> 1 do Application.ProcessMessages; pg:=0;
|
выбрасить
| Код | while pg <> 1 do Application.ProcessMessages; pg:=0;
|
то программа не зависает, но при єтом и страничка не обновляется
пробовал тоже не помогло, у него всегда readyState = 'complete'
| Код | form1.WebBrowser1.Refresh; while ((WebBrowser1.Document as IHTMLDocument2).readyState <> 'complete') do Application.ProcessMessages;
|
подскажите что не так? дайте совет. |