Avatar billede stefmeister Nybegynder
11. marts 2004 - 15:23 Der er 6 kommentarer og
1 løsning

Download, status bar?

Hej...

Jeg har et program der kan downloade filer, jeg bruge dette:

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
    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;


procedure TForm1.Button1Click(Sender: TObject);
begin
GetInetFile('http://www.MinSide.dk/MinFil.dll','c:\MinFil.dll);
end;

Hvordan sætter jeg en status bar ind, så folk kan se hvor langt den er kommet med at downloade filen?

Så lige et andet spørgsmål, hvordan får jeg min funktion til at ligge den downloadede fil i samme mappe som programmet selv ligger?


/stefmeister
Avatar billede snowball Novice
11. marts 2004 - 15:35 #1
GetInetFile('http://www.MinSide.dk/MinFil.dll',ExtractFilePath(Application.ExeName) + '\MinFil.dll');

Så gemmer du filen i samme folder som dit program bliver kørt fra.

Mht. en download bar, så skal du vide størrelsen på den fil du henter for at du kan lave sådan en, og det kender man oftest først når man har hentet hele filen. Ved ikke om man kan få lavet en funktion der finder størrelsen på en fil uden at hente den først.
Avatar billede borrisholt Novice
11. marts 2004 - 16:02 #2
Avatar billede stefmeister Nybegynder
11. marts 2004 - 16:09 #3
borissholt -> den du har lavet der, forstår jeg ikke så meget af, kan det ikke lade sig gøre at lave den mere simpel?
Avatar billede stefmeister Nybegynder
11. marts 2004 - 16:50 #4
borrisholt -> den du har lavet, hvordan får man den til at gemme den downloadede fil i den mappe som den mappe filen som den fil ligger i ?
Hvis du forstår (altså hvis din fil project1.exe ligger i "c:\delphi\download" så skal den gemme den fil den downloader i "c:\delphi" i stedet for
Avatar billede stefmeister Nybegynder
11. marts 2004 - 17:55 #5
nå lige meget nu... fandt en anden løsning.
Avatar billede mulbo Nybegynder
12. marts 2004 - 09:21 #6
stefmeister... med iedownload... kan du bare bruge:
IEDownload1.Go('din_fil_der_skal_downloades', 'Placering_når_den_er_downloadet');

;)
Avatar billede borrisholt Novice
12. marts 2004 - 09:29 #7
stefmeister>> på TIEDownLoader ligger der en property der hedder DestinationFolder. Den sætter du blot til ExtractFilePath(Application.Exename)

Jens B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester