Für alle die das selbe Problem wie ich haben:
Mit den TimeOut Funktionen der einzelnen Kompos kommt man nicht weiter.
Aber es geht doch:
Ich habe mir einen Thread angelegt, der das Senden übernimmt.
Nun habe ich vor dem Aufrufen des Threads GetTickCount in eine Variable gespeichert.
Und nun in einer Schleife testen ob die Zeit überschritten ist
Delphi-Quellcode:
Tick := GetTickCount;
While (not thread.Terminated) do begin
Application.ProcessMessages;
If (GetTickCount-Tick > TimeOut) AND (not thread.state) then break;
end;
Nochmal zur Erläuterung:
thread.state ist ein Boolean und wird nach dem Verbinden (Client.Connect im Thread.Execute-Teil) auf true gesetzt.
Das habe ich gemacht, das es nicht abbricht wenn es sich schon verbunden hat. Es kann ja sein das das senden etwas länger dauert.
halinchen
//EDIT: Thread.FreeOnTerminate muss True sein, sonst gibt es den Speicher nicht mehr frei!!!