![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый день
Замечено, что в момент загрузки страницы ПРОЦ грузит до 50% видимо в первом Application.ProcessMessages Код:
try Wbbr.Navigate(UrlSearch, Flags, TargetFrameName, PostData, Headers); repeat Application.ProcessMessages; (*видимо тут грузит проц до 50%*) until Wbbr.ReadyState >= READYSTATE_COMPLETE; if Wbbr.Document <> nil then HtmlCodeData := AnsiLowerCase( (Wbbr.Document as iHTMLDocument2).body.innerhtml); Application.ProcessMessages; (*тут вроде бы и не надо?*) except CodeSite.EnterMethod( Self, 'Timer' ); CodeSite.SendError('TWebBrowser failed'); (*бравузер здох*) CodeSite.ExitMethod( Self, 'Timer' ); end; Вопрос: чем можно заменить Application.ProcessMessages в коде, так чтобы гарантировать загрузку страницы перед выполнением последующих инструкций |
#3
|
|||
|
|||
![]() потоки это хорошо, но не по теме
уже насоветовали Код:
repeat Sleep (1); Application.ProcessMessages; теперь не более 7% загрузки проца |
#4
|
||||
|
||||
![]() Sleep можно и больше 1 миллисекунды сделать. Загрузка снизится почти до нуля.
![]() jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
![]() а чем события не устраивают?
Пишу программы за еду. __________________ |
#6
|
|||
|
|||
![]() OnDownloadComplete и прочие не походят, так как нет гарантии что они возникают после закачки и обработки страницы
код в топике гарантирует, в том числе и в ситуации с низкой скоростью закачки, правильную обработку кода(ДОМ). это проверено |
#7
|
||||
|
||||
![]() даже в справке написано:
Цитата:
на худой конец: Код:
WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete; WebBrowser1.Navigate('http://www.sony-ericsson.ru/forums2/index.php'); procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin if WebBrowser1.ReadyState=READYSTATE_COMPLETE then Caption:='Ok'; end; Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 28.05.2012 в 17:07. |
#8
|
|||
|
|||
![]() справочник - это хорошо
а сам не пробовал? if Wbbr.OnDocumentComplete = True Then .... в своих программах? а то опять прийдется полдня тестировать |
#9
|
||||
|
||||
![]() событие OnDocumentComplete типа TWebBrowserDocumentComplete:
Код:
TWebBrowserDocumentComplete = procedure(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant) of object; Пишу программы за еду. __________________ |
#10
|
|||
|
|||
![]() ну хорошо нельзя сравнивать.....
речь то не об этом речь о том, есть ли у тебя личный опыт использования этого кода и с какими результатами тот код что приведен в топике хотя бы проверен и проблем замечено не было |