Moin Marabu,
danke für deine Antwort, aber jede neue Verbindung hat ja ein anderes Sockethandle, demnach kann eigentlich kein doppeltes Objekt vorkommen. Übrigens: ich verbinde nur mit _einem_ Client und hab den Fehler.
Wenn ich es nun so habe:
Delphi-Quellcode:
procedure TServServ.ClientDisconnect(Sender: TObject; ASocket: TCustomWinSocket);
begin
messagebox(0, pchar(inttostr(FServerSocket.Socket.ActiveConnections)), 'hi', 0);
FUserList.Remove(UserBySock(ASocket));
end;
dann bekomme ich laufend "1" angezeigt, je nach Timerintervall. Hab selbigen auf 1000, nun bekomme ich jede Sekunde "1" angezeigt. Wieso das ClientDisconnect() immer vom TImer aus aufgerufen wird, ist mir schleierhaft.