Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > пауза при выполнении процедуры


Автор: monst2978 23.10.2012, 02:09
Здравствуйте. 
В процедуре вызываю действие
WebBrowser1.Navigate
Нужно дождаться завершения события WebBrowser1DocumentComplete, а затем продолжить выполнение процедуры.
Т.е. основная процедура просит WebBrowser перейти по адресу, ждет пока браузер загрузит страницу, выполняет процедуру  WebBrowser1DocumentComplete, а затем основная процедура продолжает свое выполнение. 
Помогите пожалуйста с решением!

Автор: Alexeis 23.10.2012, 08:48
  Не помню честно говоря, используется ли там 2 потока в браузере, но если используются, то можно в основной процедуре вызвать WaitForSingleObject, с эвентом (CreateEvent) в качестве хэндла, а в обработчике переключить эвент (SetEvent) .

Автор: monst2978 23.10.2012, 10:46
А код можете привести?

Автор: monst2978 23.10.2012, 11:06
Посоветовали еще использовать ReadyState<>READYSTATE_COMPLETE

Код

while WebBrowser1.ReadyState<>READYSTATE_COMPLETE do
Application.HandleMessage; 



как альтернатива

Автор: Alexeis 23.10.2012, 11:39
Ожидание
Код

  while WaitForSingleObject(event, 8) <> WAIT_OBJECT_0
  do
        Application.ProcessMessges();


Переключение эвента.
Код

  SetEvent(event);

Автор: monst2978 24.10.2012, 10:58
Спасибо за помощь! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)