![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Уважаемые любители своего дела!!!
Появилась маленькая проблема. Необходимо чтобы при скачивание файла по HTTP в ProgressBar - е показывался процесс скачивания. Я нашел код while (ReadLen <> 0) and (stop = false) do begin //читаем в буфер InternetReadFile(hURL, @fBuf, SizeOf(fBuf), ReadLen); //смотрим ск-ко осталось докачать InternetQueryDataAvailable(hURL, fSize, 0, 0); ProgressBar1.Position := ProgressBar1.Max - fSize; BlockWrite(f, fBuf, ReadLen); //<-пишем в файл Application.ProcessMessages; end; но что-то он не работает как этого хотелось бы. fSize - сколько осталось докачать. У меня получается, что во время скачивания ProgresBar не заполняется равномерно, а скачет. То целиком заполнится, то вообще пустой. Я вроде все перерыл не могу больше других примеров найти. Может можно через function HttpQueryInfo , пробал тоже бред какойто возвращает. Может это связанно с настройками интернета моего. А еще по поводу подвисания формы во время открытия URL. Все пишут используй Application.ProcessMessages, но в функцию я же ее не вставлю т.е. сама функция глючит или это возможно как-то? Помогите пожалуйста!!! Один мозг хорошо. а много лучше!!! |
#2
|
||||
|
||||
![]() насчёт подвисания формы могу посоветовать попробовать засунуть ф-цию, которая её подвисает в поток, вот так
Код:
var h1:THandle; ... CreateThread(nil,0,@ИмяФункци,nil,0,h1); |
#3
|
|||
|
|||
![]() спасибо за ответ!!!
метод этот вставлять где? После функции или перед? И может вооще сначала create, а потом и begin т.е. создать а потом запустить? ![]() ![]() |
#4
|
||||
|
||||
![]() ну это типа поток получается - он выполняется отдельно от всего остального. это APIшная ф-ция, можно и делфовую юзать, там класс TThread, но по-моему апишную проще. можно хоть 1000 потоков насоздать и они будут одновременно выполнятся.
процедуру(именно процедуру, а не функцию, это я сбредил "ИмяФункции" написал ![]() Последний раз редактировалось Keygenmusic, 16.11.2005 в 16:57. |
#5
|
|||
|
|||
![]() Спасибо тебе большое!!!
Если что обращусь. ![]() Да, я пробывал ошибка выскакивает, но я сам сначало попробую, а потом если не получится то "вторая строчка" ![]() Еще раз СПАСИБО!!! |