| 
| 
 | Вопрос # 3 928/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Работая с WebBrowser я заметил одну неприятность - во время того как загружается страница мне нужно добиться полной её загрузки:
 Делаю я это так...
 WebBrowser1.Navigate('sdfsdfsdfsdfsdfsdfs');
 while WB1.Busy do Application.ProcessMessages;
 Но при использовании такого кода не происходит нужного, однако, если сперва поставить WebBrowser1.Navigate('sdfsdfsdfsdfsdfsdfs'); напимер в OnClick куда-нибудь, а по нажатию на вторую кнопу сделать  while WB1.Busy do Application.ProcessMessages; происходит то что нужно (причем не зависти когда нажата вторая кнопка сразу же или чуть позже). Тогда программа дожидается загрузки страницы....
 
 Помоготе разобраться с этим случаем пожалуйста. Заранее спасибо.
 
|  |   Вопрос задал: eclipse (статус: Посетитель)Вопрос отправлен: 25 марта 2010, 16:40
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, eclipse!Крутясь в цикле, Вы не даете работать броузеру и только даром поедаете процессорное время.
 Другая разновидность вашего кода выглядит так
 
 while (webBrowser1.ReadyState <>  READYSTATE_COMPLETE) do
  Application.ProcessMessages;(если не находит READYSTATE_COMPLETE, объявите константу const READYSTATE_COMPLETE = 4;)
 Но по хорошему, лучше использовать событие от броузера OnNavigateComplete2, которое вызывается тогда, когда страница полностью загружена.
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 25 марта 2010, 17:09
 
 |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 7 апреля 2010, 17:01; участников в обсуждении: 2. 
|   | eclipse (статус: Посетитель), 7 апреля 2010, 16:12 [#1]:Долго мучался и пришёл к выводу, хоть и получается как-то некорректно : try
 webbrowser1.navigate('........');
 finnaly
 While Webbrowser1.busy do application.processmessages;
 end;
 |  
|   | Вадим К (статус: Академик), 7 апреля 2010, 16:33 [#2]:А чем он принципиально отличается от начального Вашего варианта? Галочка "подтверждения прочтения" - вселенское зло. |  
|   | eclipse (статус: Посетитель), 7 апреля 2010, 16:45 [#3]:Да хрен его знает! Просто попробывал так и получилось... |  
|   | Вадим К (статус: Академик), 7 апреля 2010, 16:55 [#4]:Бывает так, что какое то кусок кода при определенных стечениях обстоятельств начинает работать. Но на другой машине уже не будет. или изменятся параметры компиляции. 
 Итого - плохое решение.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | eclipse (статус: Посетитель), 7 апреля 2010, 17:01 [#5]:Согласен! С подобным сталкивался. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |