Pues la verdad lo he resuelto asi:
Código:
if Result.S_addr = u_long(INADDR_NONE) then
begin
...
end;
Pasa que S_addr es declarado como u_long (en WinSock), pero u_long esta definido como 'signed' Longint en lugar de 'unsigned' Longword. Entonces la solucion es hacer un cast.