Hatte gerade das selbe Problem.
Wurde folgendermaßen gelöst:
Code:
procedure TForm.FormDestroy(Sender: TObject);
var MyList : TList;
Count : Integer;
begin
MyList := IdTCP_Server.Contexts.LockList;
try
for Count := 0 to MyList.Count - 1 do
TIdContext(MyList[Count]).Connection.Disconnect;
finally
IdTCP_Server.Contexts.UnlockList;
end;
IdTCP_Server.Active := False;
end;
Bei beenden des Programms werden alle noch offenen Verbindungen getrennt.
Die mit LockList gesperrte Liste muss natürlich wieder mit UnlockList entsperrt werden.