Код |
uses Wininet
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(sAppName, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try hURL := InternetOpenURL(hSession, PChar(fileURL),nil,0,0,0); if hURL = nil then Exit; try AssignFile(f, FileName); Rewrite(f,1); repeat InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen); BlockWrite(f, Buffer, BufferLen) until BufferLen = 0; CloseFile(f); Result:=True; finally InternetCloseHandle(hURL) end finally InternetCloseHandle(hSession) end end;
function GetTempDir: String; var Buf: array[0..1023] of Char; begin SetString(Result, Buf, GetTempPath(Sizeof(Buf)-1, Buf)); end;
procedure TForm1.Button1Click(Sender: TObject); var s: string; begin Randomize; s := GetTempDir+IntToStr(Random(10000)) + '.bmp'; if GetInetFile('url',s) then begin Image1.Picture.LoadFromFile(s); DeleteFile(s); end; end;
|
|