| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Ожидание загрузки страницы |
| Автор: JanMihail 31.5.2007, 21:00 | ||
Уважаемые мастера! Помогите справится с такой задачей. Мне нужно организовать задержку программы до тех пор, пока не загрузится страница в компоненте TWebBrowser. Делаю так:
Но такой цикл очень сильно грузит процессор. Но проблема еще в том что после первого прохода процедуры все нормально. Параметр ReadyState становится равным 4, дальше я назначаю WebBrowserу новую страницу. Иду в начало, а цикл не выполняется, т.к. параметр ReadyState еще не успел поменять свое значение с 4 на 1, а цикл уже прошел и ожижать загрузки он не стал. Не подскажете, как вообще это реализовать рационально?. Заранее спасибо!!! |
| Автор: sw04 31.5.2007, 21:27 |
| JanMihail, зачем метку используешь? не лучше саму процедуру вызывать? Как вариант можно использовать потоки. |
| Автор: JanMihail 31.5.2007, 21:36 | ||||
но мне не нужно каждый раз процедуру сначала выполнять. А именно с этой метки. Перед меткой еще код есть!
|
| Автор: sw04 31.5.2007, 22:18 | ||
так вот, когда тебе надо проверить ReadyState, необходимо вызвать процедуру FSnifferThread.Init. Код работает, но коряво скорее всего. Надо учитывать запуск и остановку потока. |
| Автор: MetalFan 31.5.2007, 22:50 |
| ойй... гото то зачем??? |
| Автор: aktuba 1.6.2007, 00:55 | ||
В память о прежних временах JanMihail, раз у тебя такая проблема - это говорит только об одном - неверный подход к структуре программы. Правильнее было бы использование менеджера, который будет распоряжаться переходами по линкам и, возможно, отдельный поток. Ну и конечно (!!!) - надо отказаться от Goto!!! |
| Автор: JanMihail 1.6.2007, 07:33 | ||
Ну такой цикл же грузит процессор! Мне надо чтоб ожидание не в цикле как-то было |
| Автор: sw04 1.6.2007, 19:03 | ||||
не, зачем. если на потоках, то всё нормально будет. советую ознакомиться с закрепленной статьей в разделе win api - сабклассинг и суперклассинг. |