![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Код:
function Downl0ad_MasteR_XD(url:string; sfile:string) : string; var IdHTTP: TIdHTTP; memorystream: TMemoryStream; begin result:= ''; IdHTTP:=TIdHTTP.Create(nil); memorystream:=TMemoryStream.Create; try IdHTTP.Get(url, memorystream); memorystream.Position:=0; MemoryStream.SaveToFile(sfile); finally memorystream.Free; IdHTTP.Free; end; result:=':)'; end; возможно ли узнать когда завершается загрузка файла(ну типа что бы сработало прогрессбар ![]() буду благодарен ![]() Последний раз редактировалось Программер_Х, 27.08.2010 в 12:45. |
#2
|
||||
|
||||
![]() В Uses необходимо включить модуль: WinInet
Для определения размера файла воспользуемся следующей функцией: Код:
function GetUrlSize(const URL:string):integer; var hSession,hFile:hInternet; dwBuffer:array[1..20] of char; dwBufferLen,dwIndex:DWORD; begin Result:=0; hSession:=InternetOpen('GetUrlSize',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0); if Assigned(hSession) then begin hFile:=InternetOpenURL(hSession,PChar(URL),nil,0,INTERNET_FLAG_RELOAD,0); dwIndex:=0; dwBufferLen:=20; if HttpQueryInfo(hFile,HTTP_QUERY_CONTENT_LENGTH,@dwBuffer,dwBufferLen,dwIndex) then Result:=StrToInt(StrPas(@dwBuffer)); if Assigned(hFile) then InternetCloseHandle(hFile); InternetCloseHandle(hsession); end; end; Код:
procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin i:=GetUrlSize('http://www.delphicode.ru/delphi.png'); showmessage(inttostr(i)); end; Последний раз редактировалось Admin, Сегодня в 10:32. |
#3
|
|||
|
|||
![]() спасибо...
но если менять ссылку http://www.delphicode.ru/delphi.png на любую другую то пишет 0 ![]() |
#4
|
|||
|
|||
![]() application.processmessages надо добавить где то
![]() ![]() |
#5
|
||||
|
||||
![]() Код:
begin idhttp1.Head('http://www.delphisources.ru/forum/images/misc/logo_ds_forum.gif'); memo1.Text:= inttostr(idhttp1.Response.ContentLength); memo2.Text:= idhttp1.Response.RawHeaders.GetText; end; |
#6
|
|||
|
|||
![]() Цитата:
спасибо большое)) ![]() Код:
idhttp1.Response.RawHeaders.GetText; ![]() |
#7
|
||||
|
||||
![]() событие OnWorkBegin:
IdHTTP1.Response.ContentLength что бы лишний HEAD не посылать прогресс апдейтим в OnWork OnWorkEnd - все, приехали -- или -- procedure TForm1.IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin // AWorkCountMax - ничего не напоминает? end; procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); begin // AWorkCount - а чтобы это значило? end; procedure TForm1.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode); begin // приехали end; Последний раз редактировалось NumLock, 27.08.2010 в 14:55. |