| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Приостановить выполнение программы |
| Автор: Mach3 14.8.2008, 08:11 | ||
| Привет... В цикле загружаю вебстраницы...
При выполнении программы все стоит колом, окно не двигается... Хочу сделать кнопку ПАУЗА... Как приостановить выполнение цикла или загрузку страницы? И еще вопрос... Если обрывается соединение, вылетает ошибка... Как сделать условие на ошибку или на удачную загрузку страницы? Заранее благодарен. |
| Автор: THandle 14.8.2008, 08:15 |
Application.ProcessMessages? Выносить загрузку в отдельный поток, по одной кнопке (СТАРТ) запускать, по кнопке ПАУЗА приостанавливать... Ну отлавливай её try/except... |
| Автор: aleksh 14.8.2008, 09:04 | ||
на всякий случай добавлю: Application.ProcessMessages и проверка на нажатие "паузы" следует вставить в цикл, например:
x -- это boolean, если нажата "пауза" присваивается true. перед break (прерывание цикла) хорошо бы сохранять номер строки, на которой остановились, ибо цикл "приостонавливатся" не умеет, и потомначинать цикл с сохранненого номера (но это смотря для чего нужна пауза) а вот с паузой загрузки сложнее, да и зачем она? |
| Автор: Mach3 14.8.2008, 10:55 |
| С циклом разобрался... Спасибо.. А как бороться с тем, что пока загружается страница (idhttp1.get) программа ''зависает''? |
| Автор: Poseidon 14.8.2008, 10:58 | ||
|
| Автор: aleksh 14.8.2008, 11:30 |
| есть опосение, что второй поток не особо поможет, ибо поток для чего именно: очереди закачек (нужна ли она), или под каждую закачку (есть ли резон)? toMach3: а программа на долго зависает? и каков канал? |
| Автор: Mach3 14.8.2008, 11:42 | ||
| зависает на 3-5 секунд при скорости 3 килобайт/сек.. Это загрузка одной страницы + парсинг... вобщем после нажатия кнопки я через 3-5 сек вижу в мемо1 парсированную страницу... А вообще программа должна загрузить и обработать более 200 страниц за весь цикл... Добавлено @ 11:44
Если честно, я плохо понимаю что это значит... Может посоветуйте что почитать? |
| Автор: aleksh 14.8.2008, 11:51 |
| про поточность http://forum.vingrad.ru/forum/topic-60076.html, а вот со скоростью интересней: во-первых скорость канала (аппартная проблема), парсинг (может его можно улучшить, поищите по форуму на тему парсинга), а если текста много -- так это может и из-за memo тормозится. кстати, а почему memo, а не twebbrouser, что-то спецефичное? так что, не все так ахово, могло бы быть и медленее... |
| Автор: Mach3 14.8.2008, 12:13 |
| Спасибо за материал... Читаю, разбираюсь... Я ничего не могу сделать с программой, пока загружается страница... Проверил.... А мемо это так для проверки работоспособности парсера.. |
| Автор: aleksh 14.8.2008, 13:34 |
| а что нужно делать с программой, когда она страницы подгружает? лучший (по моему) вариант -- увеличить скорость сети, осталное -- от лукавого. а можно так сделать: сначала все загрузили, и только потом начинаем парсить? если да, то можно так: поставить счетчик на форме для загруженных станичке, гиф повесить, периодически сообщать что сейчас прога делает. это может показаться смешным, но наблюдения показывают что эти манипуляции повышают быстродействие программы (хоть и восприятие). сказ сей шутка, но в нем намек серьезный |