Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.07;
Скачать: CL | DM;

Вниз

InternetReadFile + BlockWrite + ProgressBar , помогите ...   Найти похожие ветки 

 
IgorT ©   (2008-02-18 23:21) [0]

Вобщем, есть такая функция для скачивания файлов из инета, но никак не могу дойти как прикрепить к ней прогресс бар ?(прикрепить то я прикреплю, надо чтобы он коректно работал, ато у меня не получается - разов по 20 проходит :) , неправильный код об прогресе я не вставлял... )

Вот код самой процедуры :


function GetInetFile
(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
 hSession, hURL: HInternet;
 Buffer: array[1..BufferSize] of Byte;
 BufferLen: DWORD;
 f: File;
 sAppName: string;

begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
               INTERNET_OPEN_TYPE_PRECONFIG,
              nil, nil, 0);

try
 hURL := InternetOpenURL(hSession,
           PChar(fileURL),
           nil,0,0,0);
 try
  AssignFile(f, FileName);
  Rewrite(f,1);
  repeat
  Application.ProcessMessages;
   if u=true then
     begin
     CloseFile(f);
     DeleteFile("new.ini");
     DeleteFile("new.rar");
     Clipboard.Clear;
     Result:=False;
     exit;
     end;

   InternetReadFile(hURL, @Buffer,
                    SizeOf(Buffer), BufferLen);
  BlockWrite(f, Buffer, BufferLen);
  until BufferLen = 0;
  CloseFile(f);
  Clipboard.Clear;
  Result:=True;
 finally
  InternetCloseHandle(hURL)
 end
finally
 InternetCloseHandle(hSession)
end
end;



 
Compiler ©   (2008-02-19 00:18) [1]

Перед скачиванием нужно наверно размер файла узнать.

dwBufferLen, dwIndex: DWORD;
dwBuffer: Pointer;
...
dwIndex  := 0;
dwBufferLen := 20;
HttpQueryInfo(URL, HTTP_QUERY_CONTENT_LENGTH, @dwBuffer, dwBufferLen, dwIndex)


Размер файла должен быть тут dwBuffer


 
IgorT ©   (2008-02-19 01:11) [2]

етым кодом мы узнаем только вес самого файла на сервере ? Или мы должны подавать на него уже вытащеный размер ? Я с прогресс барамы никогда не работал, обясните пожалуйста все по простому, растолкуйте плз


 
Сергей М. ©   (2008-02-19 09:52) [3]


> IgorT ©   (19.02.08 01:11) [2]

http://www.google.ru/search?aq=f&complete=1&hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=b0g&q=Delphi+internetreadfile+progressbar&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru


 
IgorT ©   (2008-02-20 21:15) [4]

Вопрос решен, решения здесь - http://forum.sources.ru/index.php?act=ST&f=14&t=223785



Страницы: 1 вся ветка

Текущий архив: 2009.06.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
2-1240246030
alex989
2009-04-20 20:47
2009.06.07
Странности с математикой (real, extended)


15-1238861573
sof.dff
2009-04-04 20:12
2009.06.07
аудиовыходы


2-1239346556
Alex34
2009-04-10 10:55
2009.06.07
Сортировка в DBGrid


2-1240384955
Лёша
2009-04-22 11:22
2009.06.07
Как организовать данные?


3-1221992597
DAdd
2008-09-21 14:23
2009.06.07
Ограничение длины строки