Hola,
A lo peor me estoy equivocando, pero, creo que tendrías que utilizar "try...finally" y en la cláusula "finally", precisamente, desconectar. No digo que no uses "try..except", pero puedes usar entrambas, más o menos de este modo:
Código Delphi
[-]
function TFrmScanner.ServerExist(Port: Word; Host: String): Boolean;
begin
IdTelnet.Host := Host;
IdTelnet.Port := Port;
try
try
IdTelnet.Connect;
ServerList.Add(Host);
Result := True;
except
Result := False;
end;
finally
IdTelnet.Disconnect;
end;
end;
(Por otro lado, en cualquier caso, por favor, edita tu mensaje, sitúa el código Delphi entre etiquetas [ DELPHI ] y ganaremos todos)