Форум: "Основная";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизПрервать закачку файла по HTTP Найти похожие ветки
← →
MAMBA (2006-04-14 08:27) [0]Качаю файл из инета с помощью функции
function GetInetFile (const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
rrr : integer;
hhh,ddd: real48;
f: File;
sAppName, vvv: string;
begin
Result:=False;
frmMain.btnLoad.Enabled := 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
frmMain.ProgressBar.Max := Strtoint(GetUrlInfo(HTTP_QUERY_CONTENT_LENGTH, "http://10.252.205.13/Update/Izm/w.exe"));
AssignFile(f, FileName);
Rewrite(f,1);
rrr := 0;
hhh := strtofloat(GetUrlInfo(HTTP_QUERY_CONTENT_LENGTH, "http://хх.ххх.ххх.хх/Update/Izm/w.exe"));
vvv := format("%.2f kb",[hhh/1000]);
repeat
Application.ProcessMessages;
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
frmMain.lblProg.Caption := "Размер обновлений - " + vvv + " всего";
frmMain.lblProg.Update;
frmMain.lblProgress.Caption := "Получено - " + format("%.2f kb",[rrr/1000]);
frmMain.lblProgress.Update;
frmMain.ProgressBar.Position := frmMain.ProgressBar.Position + BufferLen;
BlockWrite(f, Buffer, BufferLen);
rrr := rrr + BufferLen;
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
Надо обработать нажатие кнопки Отмена, т.е. прервать загрузку файла. Вопрос - как?
← →
Сергей М. © (2006-04-14 09:03) [1]
> как?
Вставить в тело цикла проверку состояния флага, взводимого в обработчике события OnClick кнопки "Отмена", т.е. проверку на условие досрочного выхода из цикла.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c