Hey Leute,
Ich habe vor eine Datei mit der
indy Komponente runterzuladen. Dabei hat man aber die Möglichkeit den Download abzubrechen.
Das hatte ich so zu machen:
Ich erstelle eine globale Var.
und wenn man auf "Abbrechen klickt" wird die var. auf true gesetzt.
So egal ob man auf Abbrechen klickt oder nicht die Datei soll erst mal ganz runtergeladen werden. Wenn nun die var. auf True ist soll die Datei am ende gelöscht werden.
So lade ich herunter:
Delphi-Quellcode:
var
ini : Tinifile;
begin
button2.Enabled := false;
createdir(edit1.Text);
speicherpfad := edit1.Text;
ini := Tinifile.Create(speicherpfad+'Einstellungen.ini');
responseStream := TFileStream.Create(speicherpfad+'Phantom_Zip_v2.exe', fmCreate);
IdHTTP1.Get('http://phantomzip.ph.funpic.de/Phantom_Zip_v2.exe', responseStream);
responseStream.free;
und so mache ich das mit Abbrechen
Delphi-Quellcode:
procedure TForm3.IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
if abbrechen = false then begin
sgauge1.Progress := 100;
form4.show;
form3.Hide;
end;
if abbrechen then begin
sgauge1.Progress := 100;
deletefile(speicherpfad+'Phantom_Zip_v2.exe');
Das Problem ist: Das die Datei nicht geschlossen wird, es kommt die Meldung das die Datei noch ausgeführt ist.
Aber ist mit "responseStream.free;" die Datei nicht geschlossen?