Einzelnen Beitrag anzeigen

Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#182

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

  Alt 4. Feb 2012, 10:47
Momentan geht beides leider nicht so einfach. Das Google Maps API liefert keine Tasten-Events. Um daran zu kommen, gibt es verschiedene Stellen:
  • COM: Die Funktion TranslateAccelerator des IDocHostUIHandler-Interfaces. Diese wird gegenwärtig zum Beispiel bei der Behandlung der Refresh-Taste (F5) intern vom Script-Objekt verwendet. In der kommenden Version wird darüber auch der optische Zoom des IE's ansprechbar sein (Ctrl +, Ctrl -) und Ctrl N (neues Browserfenster) unterdrückt werden. Um Dich dort einzuklinken, könntest Du das TScript-Objekt ableiten und die Methode TranslateAccelerator überladen. In der kommenden Version könnte ich dazu noch ein Event anlegen.
  • Über Event-Handler, die sich an die einzelnen DOM-Objekte des Browsers heften (Map, StreetView usw.). Die könnte ich in die kommende Version des Frameworks noch einfügen.
  • Über KeyPreview des Formulars.
  • Über einen Tastatur-Hook.
Schau dir mal den JavaScript-Code der KeyDragZoom-Library an: Dort wird die Betätigung der Tasten Shift, Ctrl und Alt ausgewertet und der Cursor gesetzt.

Das Rechteck kannst Du natürlich als Markierungsrahmen verwenden. Das Aufziehen eines Rechtecks scheitert momentan aber daran, daß die Karte das Klicken und Ziehen als Verschiebung der Karte interpretiert.
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat