Delphi-Quellcode:
var CT: TConnectThread;
T: Cardinal;
begin
try
CT:=TConnectThread.Create(True);
CT.FreeOnTerminate:=True;
CT.TCP:=Fidtcp;
CT.Host:=Host;
CT.Port:=Port;
T:=GetTickCount+5000; //5s-Timeout
CT.Resume; //Nicht Execute, sondern Resume
while not Thread.Terminated do //Ich weiß nicht ob Terminated global ist
If (T-GetTickCount<0) AND (not CS.FConnected) then break; //Eventuell noch einen Boolean auf true setzen, damit du weißt das es nicht verbunden werden konnte.
end;
CT.Terminate;
//FListeningThread.Resume; -> Ich weiß nicht was du damit machen willst.
except
raise EConnectException.Create('');
end;
end;
Das exceute muss glaube ich resume sein. Und mit einem Thread auf eine Komponente, die nicht zum Thread gehört,direkt ist glaub ich kein guter Programmierstil.
Wenn ich mich nicht verschätzt habe müsste es so klappen