Entwickler-Ecke

Internet / Netzwerk - IdHTTP1.Post etc. abbrechen


the-kecks - Mo 20.07.09 23:06
Titel: IdHTTP1.Post etc. abbrechen
hi,
ich hab einen account checker für verschiedene websites erstellt. bei vielen accounts, kann das schonmal etwas dauern, da möchte man auch zwischen drin mal unterbrechen können/den vorgang stoppen. meine frage ist nun: wie erstelle ich so einen "Abbrechen" button mit dem man IdHTTP "anhalten" kann?

mfg


R4id - Mo 20.07.09 23:14

Indem du eine Globale Variable vom Type Boolean deklarierst und ab und zu mal den Status von diesem Boolean überprüfst und dem ensprechend handelst, so würds ich zumindest probieren...


the-kecks - Di 21.07.09 00:05

funzt leider nicht, da IdHTTP solange es aktiv ist ähnlich wie eine schleife wirkt. alles andere wird lahmgelegt

mfg


Marc. - Di 21.07.09 00:10

Mein Vorschlag: Lager die Funktion in einen seperaten Thread aus und pausiere (suspend) diesen. Ein Tutorial von user profile iconLuckie dazu findest u.a. hier [http://www.delphi-library.de/viewtopic.php?t=16627&highlight=threadprogrammierung].

Grüße,
Marc


the-kecks - Di 21.07.09 16:53

hab das ganze mit einem boolean wert gelöst (wie von R4id vorgeschlagen). ich überprüfe ich den wert im OnWork ereignis von IdHTTP und schließe dann ggf. mit "exit;".

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
  bAbort : boolean;

...

procedure TForm1.Button5Click(Sender: TObject);
begin
  bAbort:=true;
end;

procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
  if bAbort=true then exit;
end


mfg