AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IdHTTP problem

Ein Thema von A-M-X · begonnen am 4. Nov 2005 · letzter Beitrag vom 17. Mär 2007
Antwort Antwort
A-M-X

Registriert seit: 29. Sep 2005
Ort: Karlsruhe
152 Beiträge
 
#1

IdHTTP problem

  Alt 4. Nov 2005, 19:01
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:
  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;
zum löschen so:

Delphi-Quellcode:
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);
Aber wie gehts richtig?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: IdHTTP problem

  Alt 4. Nov 2005, 20:05
Hallo.

Du kannst einen Download mit der Indy HTTP Client-Komponente im Ereignis OnWork() abbrechen, indem du eine stumme Exception wirfst:

Delphi-Quellcode:
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;
Grüße vom marabu
  Mit Zitat antworten Zitat
A-M-X

Registriert seit: 29. Sep 2005
Ort: Karlsruhe
152 Beiträge
 
#3

Re: IdHTTP problem

  Alt 4. Nov 2005, 20:45
super!!

funktioniert perfekt! vielen dank
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#4

Re: IdHTTP problem

  Alt 17. Mär 2007, 10:47
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...
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz