![]() |
IdTCPServer: Systemfehler code: 1400. Ungültiges Fensterhand
Ich habe eine Serveranwendung aufgebaut.
Sie sieht so aus: beim Form.Create:
Delphi-Quellcode:
beim Form.IdTCPServer.Execute:
Clients := TThreadList.Create;
IdTCPServer.Active := True;
Delphi-Quellcode:
beim Form.AddClient:
if (AThread <> nil) and (not AThread.Terminated) and (AThread.Connection.Connected) then
begin Code := AThread.Connection.ReadInteger; case Code of GET_CLIENTID: AddClient(AThread); ... // Verschidene Anweisungen an den Server. end; end;
Delphi-Quellcode:
Beim Form.OnDestroy
var
Client: PClient; ID : Cardinal; errorcode: Integer; begin errorcode:=0; try with Clients.LockList do begin try New(Client); Client^.ID := LfdID; Inc(LfdID); Client^.Report := nil; Add(Client); finally Clients.UnlockList; end; end; finally AThread.Connection.WriteInteger(errorcode); end; AThread.Connection.WriteInteger(Client^.ID); end;
Delphi-Quellcode:
IdTCPServer.Active := false;
with Clients.LockList do try for i := 0 to Count-1 do begin Dispose(Items[i]); end; Clients.Clear; finally Clients.UnlockList; end; Clients.Free; Die Clientanwendung macht folgendes:
Delphi-Quellcode:
Funktioniert wunderbar! ARBER! wenn ich den Server schliese bekomme ich volgende Fehlermeldung:
with IdTCPClient1 do
begin Connect; WriteInteger(GET_CLIENTID); if ReadInteger <> 0 then exit; ID := ReadInteger; ... //ein par befehle an den Server Disconnect; end; "Systemfehler code: 1400. Ungültiges Fensterhand" Was ich schon alles Probiert habe: Ich habe mal einen ThreadManager hinzugefügt. Es sind aber bei beendigung des Servers, keinerlei Threads in der Liste. in der IdServer.Treads auch nicht! Hat jemand sonst noch eine Idee? wäre cool wenn mir einer Helfen könte! Thx! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz