El error de "Range Check Error" ocurre cuando se accede a un índice fuera de los límites de un array. En el código que has proporcionado, el error ocurre en la línea donde se accede a recTcpTable.Table[i].dwRemoteAddr. Esto puede suceder si el valor de i es mayor o igual al número de entradas en la tabla recTcpTable.
Para solucionar este error, asegúrate de que el valor de i esté dentro de los límites válidos de la tabla. Puedes hacer esto verificando que i sea menor que recTcpTable.dwNumEntries antes de acceder a recTcpTable.Table[i].dwRemoteAddr.
Aquí tienes un ejemplo de cómo puedes realizar esta verificación:
Código:
for i := 0 to recTcpTable.dwNumEntries - 1 do
begin
if (i >= recTcpTable.dwNumEntries) then
Break;
// Resto del código...
end;
Creo que al realizar esta verificación, te aseguras de que i no exceda los límites válidos de la tabla y evitas el error de "Range Check Error".
Pruébalo...