Autor Beitrag
Passi077
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 125

Win XP
D7 Pers
BeitragVerfasst: Fr 22.06.07 17:42 
Hi,

folgendes Problem:
Ich starte über einen ButtonClick eine Reihe von Indy Operationen. Die erste ist z.B. eine .Post Methode.

Nun möchte ich, dass sobald diese Post Methode das OnWorkEnd Event aufgerufen hat, direkt eine weitere IdHTTP Methode ausgeführt wird, z.B. die .Get Methode.

Dazu habe ich mir folgendes gebaut:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure tform1.dlhttpworkEnd(sender: tobject; AWorkMode: TWorkMode);
var
 ausgabe, fausgabe: string;
begin

 if DLHTTPsStatus[self.tag]=0 then // wenn die erste Methode fertig ist, in diesem Fall .Post (über Button aufgerufen)
 begin

  ausgabe:= DLInfoStream[self.tag].DataString; //Ausbage-Sring die zurückgegebenen Daten zuweisen

  if ausgabe='loginsuccess' then
  begin
    DLHTTPsStatus[self.tag] := 1;  // Status eins weiter setzen
    showmessage('a');
    DLHTTPs[self.tag].Get('http://www.google.de', DLInfoStream[self.tag]);
  end
  else  if ausgabe<>'' then
  begin
    showmessage('Fehler');
  end;

 end
 else if DLHTTPsStatus[self.tag]=1 then // Wenn die oben ausgeführte .Get Methode fertig ist, soll die Messagebox erscheinen
 begin
   showmessage('b');
 end;

end;



Nun das Problem:
Messagebox 'a' wird zwar ausgerufen, und der .Get Befehl wird aus ausgeführt (wenn ich ihn mir direkt in einer Messagebox z.B. anzeigen lasse..), allerdings kommt die Messagebox 'b' einfach nicht.. es sieht so aus, als ob das OnWorkEnd Event nicht mehr ausgerufen werden würde für die .Get Methode..

Weiß jemand Rat :)?

Danke + Grüße
Passi
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Fr 22.06.07 19:06 
IMHO unnötig, da bei .Get und .Post eh gewartet wird, bis die Seite geladen hat.

ausblenden Delphi-Quelltext
1:
2:
IdHTTP1.Post('...');
IdHTTP1.Get('...)';     // Wird erst ausgeführt, wenn .Post fertig

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)