![]() |
IdHTTP problem
Huhu!!
Hab da folgende Probleme: wie unterbreche ich WÄHREND des downloads ein IdHTTP? und wie gebe ich diese datei dann frei und kann sie DANN löschen BZW --->>> Mein Programm löscht die gedownloadete datei , dass der Benutzer keine Probleme hat , diese von Hand zu löschen Zum downloaden so
Delphi-Quellcode:
zum löschen so:
Button1.Enabled := false;
Edit1.Enabled := false; Edit2.Enabled := false; Button2.Enabled := true; Ziel := Edit2.text; Datei:=TFileStream.create(Ziel,fmCreate); IdHttp1.Get(Edit1.Text,Datei); Datei.Free;
Delphi-Quellcode:
Aber wie gehts richtig? :mrgreen: :mrgreen: :mrgreen:
function DeleteFile(const AFile: string): boolean;
var sh: SHFileOpStruct; begin ZeroMemory(@sh, sizeof(sh)); with sh do begin Wnd := Application.Handle; wFunc := fo_Delete; pFrom := PChar(AFile +#0); fFlags := fof_Silent or fof_NoConfirmation; end; result := SHFileOperation(sh) = 0; end; Datei.Free; Button1.Enabled := true; Edit1.Enabled := true; Edit2.Enabled := true; Button2.Enabled := false; DeleteFile(Ziel); |
Re: IdHTTP problem
Hallo.
Du kannst einen Download mit der Indy HTTP Client-Komponente im Ereignis OnWork() abbrechen, indem du eine stumme Exception wirfst:
Delphi-Quellcode:
Grüße vom marabu
type
TDemoForm = class(TForm) ... private Canceled: boolean; ... end; procedure TDemoForm.CancelClick(Sender: TObject); begin Canceled := true; end; procedure TDemoForm.HTTPWork(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); begin if Canceled then Abort; end; procedure TDemoForm.DownloadClick(Sender: TObject); var fs: TFileStream; fn: TFileName; begin fn := 'c:\daten\abort.txt'; fs := TFileStream.Create(fn, fmCreate); Canceled := false; try HTTP.Get('http://www.amazon.de', fs); except end; fs.Free; // Datei freigeben if Canceled then DeleteFile(fn); end; |
Re: IdHTTP problem
super!!
funktioniert perfekt! vielen dank :thumb: |
Re: IdHTTP problem
Auch wenns ein bisschen her ist: Aber welche Exception muss ich beim Abrruch abfangen? Weil ich wollte bei allen anderen Exception eine Fehlermeldung anzeigen lassen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz