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