Hola.
Una opción muy simple es usar la función
InternetGetConnectedState .
Código Delphi
[-]
...
uses WinInet;
function HayInternet: Boolean;
var
Estado: Cardinal;
begin
Estado := INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_LAN or INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@Estado, 0);
end;
Ejemplo de llamada:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
if HayInternet then
ShowMessage('Conectado a internet')
else
ShowMessage('Desconectado de internet');
end;
Un saludo.