Текущий архив: 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.45 MB
Время: 0.004 c