@Meflin: Soweit war ich auch schon
aber wie du schon gesagt hast - Fehlanzeige!
Allerdings habe ich die Lösung des Problems, jedenfalls ist bisher kein weiterer Fehler aufgetreten! Und zwar habe ich ja eine eigene Prozedur geschrieben, die mir den Server schließt:
Delphi-Quellcode:
// Variable Server ist vom Typ TIdTCPServer
// eventl. muss die Unit "IdContext" zu den uses-Klauseln hinzugefügt werden,
// weil das nicht automatisch gemacht wird
function StopServer: Boolean;
var
CL : TList;
i : Integer;
begin
// auf diesen Teil kam ich durch den Tipp von franktron
CL := Server.Contexts.LockList;
try
for i := 0
to CL.Count - 1
do
Server.Contexts.Remove(ClientList.Items[0]);
finally
CL.Free;
Server.Contexts.UnlockList;
end;
// Server schließen
try
Server.Active := False;
// <-- hier trat bisher immer der Fehler auf
// d.h. das Programm stand hier komplett still
except
Result := False;
end;
if not Server.Active
then
begin
Server.Bindings.Clear;
Result := True;
end
else Result := False;
end;
Jetzt wäre es noch klasse, wenn das jemand von euch testen könnte und/oder Äußerungen, Kritik etc. posten könnte!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)