Einzelnen Beitrag anzeigen

Benutzerbild von PigfaceJoe
PigfaceJoe

Registriert seit: 17. Dez 2006
Ort: Saarland
24 Beiträge
 
Delphi 7 Personal
 
#7

Re: ProgressBar für Download?

  Alt 5. Aug 2007, 17:28
Zitat:
Kann mir jemand dazu vielleicht auch gleich ein Codebeispiel für
den Download mit Indy geben?
Hi,
Jap kann ich: Musst halt indy herunterladen für deine Delphi Version und installieren. Dann ziehste die Komponente IdHTTP und ein Button aufs Formular und downloaden kannste dann so (ins OnClick Ereignis vom Button):
Delphi-Quellcode:
var Ziel, URL:string;
lStream: TFileStream;
begin

URl:='http://haumichblau-ichweiss-nix.de/bild.jpg'  ;
Ziel:=ExtractFilePath(Paramstr(0))+'Bild.jpg';
try
 lStream:=TFileStream.Create(Ziel, fmCreate or fmShareDenyNone);
 try
   idHTTP1.Get(URL, lStream);
finally
lStream.Free;
end;
So soweit dazu, jetz dein Fortschrittsbalken.
Also man nehme:
-Eine ProgressBar

Dann einfach die IdHTTP Kompo anklicken und in die Sparte Ereignisse wechseln. Da dann doppelklick auf "OnWorkBegin" und folgendes in die Procedure schreiben:
progressbar1.Max:=AWorkCountMax;
so nun nochn doppelklick auf "OnWork" und dann kommt folgendes da rein:
progressbar1.Position:=AWorkCount; Das wars im Prinzip schon, die Datei befindet sich dann im Programmvertzecihnis und heisst Bild.jpg.
Ach ja: Gegen das "Einfrieren" vom Programm schreibste entweder Application.ProcessMessages noch ins OnWork ereignis oder (die folgende Variante finde ich persönlich effektiver) du ziehst die IdAntiFreeze Kompo aus der Sparte "Indy Misc" aufs Formular und setzt dort OnlyWhenIdle auf false und Idletimeout auf 1.

So, ich hoffe ich konnte dir helfen,
Gruss Pigface Joe
Max
Glühlampen brennen heller, wenn man sie vor dem Einschrauben aus der Verpackung nimmt.
  Mit Zitat antworten Zitat