![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Mach3 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 26.11.2005 Репутация: нет Всего: 2 |
Привет...
В цикле загружаю вебстраницы...
При выполнении программы все стоит колом, окно не двигается... Хочу сделать кнопку ПАУЗА... Как приостановить выполнение цикла или загрузку страницы? И еще вопрос... Если обрывается соединение, вылетает ошибка... Как сделать условие на ошибку или на удачную загрузку страницы? Заранее благодарен. --------------------
Век живи - век учись... |
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 50 Всего: 372 |
Application.ProcessMessages? Выносить загрузку в отдельный поток, по одной кнопке (СТАРТ) запускать, по кнопке ПАУЗА приостанавливать... Ну отлавливай её try/except... |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 1 Всего: 13 |
на всякий случай добавлю: Application.ProcessMessages и проверка на нажатие "паузы" следует вставить в цикл, например:
x -- это boolean, если нажата "пауза" присваивается true. перед break (прерывание цикла) хорошо бы сохранять номер строки, на которой остановились, ибо цикл "приостонавливатся" не умеет, и потомначинать цикл с сохранненого номера (но это смотря для чего нужна пауза) а вот с паузой загрузки сложнее, да и зачем она? |
|||
|
||||
| Mach3 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 26.11.2005 Репутация: нет Всего: 2 |
С циклом разобрался... Спасибо..
А как бороться с тем, что пока загружается страница (idhttp1.get) программа ''зависает''? --------------------
Век живи - век учись... |
|||
|
||||
| Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 1 Всего: 13 |
есть опосение, что второй поток не особо поможет, ибо поток для чего именно: очереди закачек (нужна ли она), или под каждую закачку (есть ли резон)?
toMach3: а программа на долго зависает? и каков канал? |
|||
|
||||
| Mach3 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 26.11.2005 Репутация: нет Всего: 2 |
зависает на 3-5 секунд при скорости 3 килобайт/сек..
Это загрузка одной страницы + парсинг... вобщем после нажатия кнопки я через 3-5 сек вижу в мемо1 парсированную страницу... А вообще программа должна загрузить и обработать более 200 страниц за весь цикл... Добавлено @ 11:44
Если честно, я плохо понимаю что это значит... Может посоветуйте что почитать? Это сообщение отредактировал(а) Mach3 - 14.8.2008, 11:49 --------------------
Век живи - век учись... |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 1 Всего: 13 |
про поточность сюда, а вот со скоростью интересней: во-первых скорость канала (аппартная проблема), парсинг (может его можно улучшить, поищите по форуму на тему парсинга), а если текста много -- так это может и из-за memo тормозится.
кстати, а почему memo, а не twebbrouser, что-то спецефичное? так что, не все так ахово, могло бы быть и медленее... |
|||
|
||||
| Mach3 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 26.11.2005 Репутация: нет Всего: 2 |
Спасибо за материал... Читаю, разбираюсь...
Я ничего не могу сделать с программой, пока загружается страница... Проверил.... А мемо это так для проверки работоспособности парсера.. --------------------
Век живи - век учись... |
|||
|
||||
| Poseidon |
|
||||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
||||
|
|||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 1 Всего: 13 |
а что нужно делать с программой, когда она страницы подгружает? лучший (по моему) вариант -- увеличить скорость сети, осталное -- от лукавого.
а можно так сделать: сначала все загрузили, и только потом начинаем парсить? если да, то можно так: поставить счетчик на форме для загруженных станичке, гиф повесить, периодически сообщать что сейчас прога делает. это может показаться смешным, но наблюдения показывают что эти манипуляции повышают быстродействие программы (хоть и восприятие). сказ сей шутка, но в нем намек серьезный |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |