Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IDHTTP+Thread+ProgressBar+ButtonCANCEL, Как все это совместить? 
V
    Опции темы
panik
Дата 20.1.2010, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.7.2009

Репутация: нет
Всего: нет



Подскажите как реализовать закачку фала с помощью IDHTTP так,
чтобы было это в отдельном потоке,
был бы показ информации о закачке (например, progressbar)
и возможность нажать кнопку (Отмена/Стоп), которая полностью остановит/прибьет (поток) закачку без ругательств со стороны IDHTTP ?

Написал закачку файла, но все виснет на время закачки (нужен поток) и все остальные вещи не знаю как реализовать.

Облазил кучу сайтов, просмотрел статьи, пробовал примеры...но ни как не доходит до меня.  smile 
Вот интересные примеры:
Скачиваем файлы из интернета
File downloader

Но в первом примере при компиляции ругается на http.OnWork:=IdHTTP1Work; и подобные.
Если их закомментить, то работает, но я так понимаю из-за этого не передаются данные Progressbar`у.

Во втором примере все работает, но зависание решено с помощью TIdAntiFreeze. И наверное потому при процесе закачки на кнопки реакции нет (например, Close не работает).

Кто знает как все это сделать буду очень благодарен!!!
Выручайте!!!

Это сообщение отредактировал(а) panik - 20.1.2010, 01:12
PM MAIL   Вверх
Демо
Дата 20.1.2010, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 3
Всего: 50





--------------------
    
PM MAIL ICQ Skype   Вверх
panik
Дата 20.1.2010, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.7.2009

Репутация: нет
Всего: нет



Демо,  спасибо за ссылку.
Я даже встречал это обсуждение, но не изучил должным образом.
Вечером буду пробовать.

Это сообщение отредактировал(а) panik - 20.1.2010, 12:03
PM MAIL   Вверх
panik
Дата 21.1.2010, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.7.2009

Репутация: нет
Всего: нет



Демо,
вот нашел тут интересный вариант.
Почти разобрался.

У меня вопрос.
Подкорректировал код и теперь пишет принимаемые данные в файл.
Но файл создается сразу с конечным размером данных и таким образом если прервать закачку, то размер файла не соответствует реально закачанным данным при прерывании закачки. Прерываю пока методом просто закрытия программы.

Как сделать, чтобы размер файла соответствовал реально закачанным данным?

Код

procedure THttpThread.Execute;
var
  str: TFileStream;

begin
  str:=TFileStream.Create('путь для сохранения', fmCreate);

    Status('Скачивание файла.');
    FHttp.Request.BasicAuthentication:= True;
    FHttp.Request.Username:= '***';
    FHttp.Request.Password:= '***';
  try
  FHttp.Get('http://*****',str);
  finally
  str.Free;
  end;
  Status('Готово');
  
end;

PM MAIL   Вверх
panik
Дата 22.1.2010, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.7.2009

Репутация: нет
Всего: нет



Ни кто не знает?
Как писать получаемые данные сразу в файл?
PM MAIL   Вверх
panik
Дата 27.1.2010, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.7.2009

Репутация: нет
Всего: нет



Вопрос решен.
Всем кому интересно обсуждение здесь.

Цитата

Как сделать, чтобы размер файла соответствовал реально закачанным данным?

В итоге решено с помощью WinInet
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.