| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > IDHTTP+Thread+ProgressBar+ButtonCANCEL |
| Автор: panik 20.1.2010, 00:50 |
| Подскажите как реализовать закачку фала с помощью IDHTTP так, чтобы было это в отдельном потоке, был бы показ информации о закачке (например, progressbar) и возможность нажать кнопку (Отмена/Стоп), которая полностью остановит/прибьет (поток) закачку без ругательств со стороны IDHTTP ? Написал закачку файла, но все виснет на время закачки (нужен поток) и все остальные вещи не знаю как реализовать. Облазил кучу сайтов, просмотрел статьи, пробовал примеры...но ни как не доходит до меня. Вот интересные примеры: http://www.delphi.int.ru/articles/39/ http://www.delphisources.ru/pages/sources/internet/2006_year/file_downloader.html Но в первом примере при компиляции ругается на http.OnWork:=IdHTTP1Work; и подобные. Если их закомментить, то работает, но я так понимаю из-за этого не передаются данные Progressbar`у. Во втором примере все работает, но зависание решено с помощью TIdAntiFreeze. И наверное потому при процесе закачки на кнопки реакции нет (например, Close не работает). Кто знает как все это сделать буду очень благодарен!!! Выручайте!!! |
| Автор: Демо 20.1.2010, 01:37 |
| http://forum.sources.ru/index.php?showtopic=120033&view=showall |
| Автор: panik 20.1.2010, 12:03 |
| Демо, спасибо за ссылку. Я даже встречал это обсуждение, но не изучил должным образом. Вечером буду пробовать. |
| Автор: panik 21.1.2010, 23:58 | ||
| Демо, вот нашел http://forum.vingrad.ru/act-ST/f-331/t-258758.html интересный вариант. Почти разобрался. У меня вопрос. Подкорректировал код и теперь пишет принимаемые данные в файл. Но файл создается сразу с конечным размером данных и таким образом если прервать закачку, то размер файла не соответствует реально закачанным данным при прерывании закачки. Прерываю пока методом просто закрытия программы. Как сделать, чтобы размер файла соответствовал реально закачанным данным?
|
| Автор: panik 22.1.2010, 17:21 |
| Ни кто не знает? Как писать получаемые данные сразу в файл? |
| Автор: panik 27.1.2010, 20:36 | ||
| Вопрос решен. Всем кому интересно обсуждение http://forum.sources.ru/index.php?showtopic=293007
В итоге решено с помощью WinInet |