Einzelnen Beitrag anzeigen

DelphiFan2008

Registriert seit: 4. Dez 2008
81 Beiträge
 
Delphi XE2 Starter
 
#428

AW: Google Maps über COM (Component Object Model)

  Alt 5. Okt 2013, 12:47
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
  Mit Zitat antworten Zitat