Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool
Online

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

String und Longint als Rückgabewert eines Threads

  Alt 21. Mai 2003, 16:48
Hi Leute,

ich habe einen Thread indem ich eine Anfrage an einen Server(http-Request) schicke.

Delphi-Quellcode:
procedure TInteractiveThread.DoRequest;
Var sReq : String;
    sReply : String;
    iTries : Longint;
begin
   sReq := MakeRequestString(cActionStr[fAction],fP1,fP2,fP3);
   iTries := 1;
   Repeat
      LogMsg := sReq;
      Synchronize(LogNow);
      try
         sReply := HttpCon.Get(sReq);
      except
         sReply := '';
      end;
      LogMsg := 'Serverantwort:"'+sReply+'"';
      Synchronize(LogNow);
   until (CheckReply(sReply)) or (iTries > MaxRetries);
   sResult := sReply;   
   iResult := getThreadResult(sReply);
end;

procedure TInteractiveThread.Execute;
begin
   if not Terminated then
      DoRequest;
   // Speicher freigeben
   HttpCon.Disconnect;
   HttpCon.free;   
   ReturnValue := iResult;
end;
In meiner Hauptapplikation frage ich den Thread folgendermaßen ab :
Delphi-Quellcode:
Var activeThd : TInteractiveThread;
      strL : TStringList;
      sTmp : String;
begin
   result := false;
   if Contact <> Nil then begin
      activeThd := TInteractiveThread.Create(cUser_Details,ID,PWD,LogF,inttostr(Contact.Nr));
      try
         // Thread starten
         activeThd.Resume;
         // auf Ende des Threads warten
         activeThd.WaitFor;
         // Thread Ergebnis auslesen
         sTmp := activeThd.StrResult;         
         if activeThd.Result = 3 then showmessage(sTmp);
      finally
         activeThd.Terminate;
      end;
   end;
Komischerweise erhalte ich den LONGINT Wert Result den richtigen Wert zurück, aber die property strResult ist immer leer.
Woran kann das liegen ?

Data

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat