Hallo zusammen,
ich habe die Google Maps Units v2.1 nach den bekannten Problemen seit der Umstellung auf Google Maps
API > 3.22 (entweder wegen onion.js oder poly.js-Fehlern o.ä.) wieder mit meinen Programmen unter Delphi X 10.1.2 Berlin zum Laufen gebracht.
Es gibt einen recht ausführlichen Thread bei Google zu den vielfältigen Problemen und deren versuchten Lösungen unter
https://issuetracker.google.com/issues/35827696.
Entscheidend ist anscheinend das Konfigurieren des Emulationsmodus der WebBrowser-Komponente, die standardmäßig von Microsoft auf IE7 gesetzt ist, die aber von der Google Maps
API wegen fehlenden JSON-Funktionalitäten nicht mehr unterstützt wird.
Diesen Emulationsmodus kann man für seine Applikation in der Registry im USER-Hive auf höhere unterstützte IE-Emulationen setzen, was dann prompt bei mir auf verschiedenen Systemen mit Windows 10 (x86/x64) und Windows 7 (x64) auch funktioniert.
Ich setze den Kompatibilitätseintrag in meiner Applikation (<Applikation.exe>) in FormCreate() unter:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULA TION
mit Eintrag "<Applikation.exe>" mit Wert DWORD = "0x00002af9"
Folgende Werte kann man für die Emulation wohl setzen (habe ich von einer
MSDN-Seite):
- 11001 (0x2AF9): Internet Explorer 11. Webpages are displayed in IE11 Standards mode, regardless of the !DOCTYPE directive.
- 11000 (0x2AF8): Internet Explorer 11. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.
- 10001 (0x2AF7): Internet Explorer 10. Webpages are displayed in IE10 Standards mode, regardless of the !DOCTYPE directive.
- 10000 (0x2710): Internet Explorer 10. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.
- 9999 (0x270F): Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the !DOCTYPE directive.
- 9000 (0x2328): Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.
- 8888 (0x22B8): Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive.
- 8000 (0x1F40): Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.
- 7000 (0x1B58): Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.
Zusätzlich setzte ich standardmäßig in der generierten
HTML-Page (in der
unit gmAPI.pas), wie in früheren Einträgen schon diskutiert, einen Meta-Eintrag im Header mit: <meta http-equiv="X-UA-Compatible" content="IE=edge" />';
Ich hoffe, das hilft euch auch weiter.