Hallo Thom,
ich möchte eine Anwendung mit deinem Framework erstellen, bei der GoogleMaps im Wesentlichen zur Visualisierung verwendet wird. Sprich nicht zwingend wegen notwendiger Internet-Anbindung erforderlich ist. D.h. das Programm soll auch ohne Internet funktionieren.
Die Abfrage nach Internet erfolgt mit folgendem Code.
Delphi-Quellcode:
function IsOnline:Boolean;
const WininetDLL = '
wininet.dll';
var hWininetDLL: THandle;
lpdwFlags : DWORD;
dwReserved: DWORD;
fn_InternetGetConnectedState:
function( lpdwFlags:LPDWORD;dwReserved:DWORD ):BOOL;
stdcall;
begin
lpdwFlags := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
Result := False;
dwReserved := 0;
hWininetDLL := LoadLibrary( WininetDLL );
if( hWininetDLL > 0 )
then
begin
@fn_InternetGetConnectedState := GetProcAddress( hWininetDLL,'
InternetGetConnectedState' );
if Assigned( fn_InternetGetConnectedState )
then
begin
Result := fn_InternetGetConnectedState( @lpdwFlags,dwReserved );
end;
FreeLibrary( hWininetDLL );
end
else
raise Exception.Create('
Unable to locate function InternetGetConnectedState in library ' + WininetDLL);
end;
Mit dem Ergebnis kann ich erkennen ob ich Online bin oder nicht. Nun kann ich vor jede GoogleMap Aktivität
IsOnline
bzw. das Ergbnis der einmaligen Abfrage
bOnline := IsOnline
setzten, erscheint jedoch nicht sehr elegant. Gibt es aus deiner Sicht eine einfache Möglichkeit?
Gruß DelphiFan2008