Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема при закачке нескольких файлов по протоколу HTTP [D6, Win2k, WinXP]


Reals ©   (2002-06-17 17:08:00) 

Помогите пожалуйста решить ситуацию.
Сразу скажу, что при закачке одного файла, все работает отлично.
Проблема появляеться если количество закачиваемых файлов больше 1.
Для закачивания фалов я использую одну библиотеку, при помощи которой это осуществляеться.
Вот пример кода:
var HttpGet: THTTPGet; //Из дополнительной библиотеки
FilesDownload: TStringList;
...
//Переменная FilesDownload заполнена списком скачиваемых файлов.

for i:=0 to FilesDownload.Count-1 do begin
HttpGet := THTTPGet.Create(Self);
HttpGet.URL:= FilesDownload.Strings[i];
HttpGet.FileName:= "Имя_локально_создаваемого_файла";
HttpGet.GetFile;
HttpGet.Free;
end;

Также проиходит обработка событий OnProgress и OnDoneFile
В событии OnProgress присваюваються значения ПрогрессБара.
Событие OnDoneFile срабатывает когда закончена закачка файла.

Теперь по поводу ошибки. Если в переменной списка FilesDownloadтолько одна запись, то есть одна ссылка для скачивания файла, то все проходит отлично. И соотвественно также пройдет без ошибок, если цикла не будет.
Но если цикл проходит более одного раза, то программа выдает ошибку, зависает и выгружаеться сама.
Я понял, что у меня написано не правильно, у меня обьект уничтожаеться когда еще закачка файла не закончена и создаеться заново для нового файла. Это есть не правильно.
Подскажите пожалуйста, как правильно организовать мне загрузку несколько файлов по очередно? Нужно дождаться выполнения текущего обьекта и только после этого идти дальше по циклу. Подскажите, кто знает, как это сделать?

P.S. Почему в цикле происходит создание и уничтожение обьекта? Потому что если один раз создать обьект и потом в нем только менять значения ссылок и вызывать процедуру закачки, то тогда программа зависает. Я заметил что один экземпляр обьекта работает только на одну ссылку.

Заранее благодарен!


Reals   (2002-06-17 17:42:00) [1]

А все-таки как можно осуществить поочередную закачку с использованием одного компонента?


lipskiy   (2002-06-17 17:32:00) [2]

HTTPGet - кривой компонент, не юзай его.
Я использую HTTPCli из библиотеки... кажется HTTPProt.


Наверх

Титульная страница Поиск, карта сайта Написать письмо