با سلام خدمت دوستان بزرگوار

من با استفاده از دستور زیر IP های مورد نظرم رو تو برنامه Ping میکنم.
function IfIPExists(IPAddr: String; Count : integer = 500): Bool;
var
I: TIdIcmpClient;
Rec: Integer;
j : integer;
begin

Result:= False;
if IPAddr = '' then exit;

I:= TIdIcmpClient.Create(nil);
try
I.Host:= IPAddr;
I.ReceiveTimeout := Count;

for j := 1 to 3 do
begin
I.Ping();
Rec:= I.ReplyStatus.BytesReceived;

if (Rec > 0) and (I.ReplyStatus.FromIpAddress = IPAddr)
then
begin
Result:= True;
Break;
end
else
Sleep(300);
end;

finally
I.Free;
end;

end;


ولی متاسفانه پس از مدتی خطای OutOfMemory میده.

این دستور مشکل داره؟