Delphi-PRAXiS
Seite 9 von 14   « Erste     789 1011     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Google Maps über COM (Component Object Model) (https://www.delphipraxis.net/157004-google-maps-ueber-com-component-object-model.html)

Sebastian78 18. Nov 2012 11:54

AW: Google Maps über COM (Component Object Model)
 
Hab jetzt alles in eine Procedure gepackt. Läuft :-D

Vielen Dank und schöne Grüße

Sebastian

Thom 18. Nov 2012 12:03

AW: Google Maps über COM (Component Object Model)
 
Prima! :-D

HJay 19. Nov 2012 16:25

AW: Google Maps über COM (Component Object Model)
 
Mir gelingt es nicht, eine Marker-Click-Routine zu setzen. Der Compiler meckert:

[DCC Fehler] GoogleMapUnit.pas(85): E2010 Inkompatible Typen: 'TProc<System.TObject,HTMLObjects.TEvent>' und 'Procedure of object'

Die Deklaration lautet:

Code:
uses  ...
gmAPI, gmMap, gmBase, gmOverlaysMarker, gmEvents;

...
TGoogleMap = class(TObject)
private
procedure MarkerClick(Sender: TObject; Event: gmEvents.TEvent);
...
end;
Dann weise ich die Click-Prozedur wie folgt zu:

Code:
procedure TGoogleMap.CreateMarker(AWpt: TWpt);
  var MarkerOptions : TMarkerOptions;
      Marker       : TMarker;
begin
  with Script(WebBrowser) do begin
    MarkerOptions := TMarkerOptions.Create;
    with MarkerOptions do begin
      Position := New(Google.Maps.LatLng(AWpt.Lat, AWpt.Lon));
      Map     := Maps[0];
      Title   := 'Test;
    end;
    Marker := New(Google.Maps.Marker(MarkerOptions));
    Marker.OnClick := MarkerClick; // <<< Compiler-Error
    MarkerOptions.Free;
  end;
end;

procedure TGoogleMap.MarkerClick(Sender: TObject; Event: gmEvents.TEvent);
begin
  with Script(WebBrowser) do begin
    if Maps[0].GetZoom=8 then Maps[0].SetZoom(4) else Maps[0].SetZoom(8);
    Maps[0].SetCenter(TMarker(Sender).GetPosition);
  end;
end;
Woran kann das liegen? Ich habe doch die Unit gmEvents.TEvent extra angegeben. Hm, ich bin ratlos.

HJay 19. Nov 2012 16:33

AW: Google Maps über COM (Component Object Model)
 
Ich würde gerne dem Nutzer erlauben, einen rechteckigen Bereich der GoogleMap zu selektieren -- also ganz normal, wie man halt so einen Bereich normalerweise markiert. Wäre OK, wenn der Nutzer dazu Ctrl oder so drücken müsste.

Nun hat GoogleMaps ja normalerweise immer die Hand und ein Click-Drag führt zum Verschieben des Karteninhalts.

Wie müsste man vorgehen, um dem User das Markieren eines Bereiches zu ermöglichen und im Programm dann die Koordinaten der Ecken zur Verfügung zu haben?

Thom 19. Nov 2012 16:56

AW: Google Maps über COM (Component Object Model)
 
Hm, Du arbeitest bestimmt noch mit der Version 2.0 des Frameworks!? Da ist es noch etwas umständlich... :roll:
Binde noch die Unit HTMLObjekts in der uses-Anweisung ein und gib an:
Delphi-Quellcode:
procedure MarkerClick(Sender: TObject; Event: HTMLObjects.TEvent);
[...]
Das Dumme ist, daß die Fehlermeldungen des Compilers bei Verwendung von anonymen Methoden teilweise recht kryptisch sind... :shock: (Nicht wundern: Selbst wenn Du keine anonymen Methoden verwendest, werden die Ereignishandler ab Delphi 2009 frameworkintern als anonyme Methoden behandelt.)

Kleiner Lichtblick: In der kommenden Version wird das einfacher. :-D

Das Aufziehen eines Auswahlrechteckes macht zum Beispiel die KeyDragZoom-Bibliothek. Dort werden auch die Ausmaße des gewählten Bereiches per Eventhandler übergeben.

HJay 19. Nov 2012 17:57

AW: Google Maps über COM (Component Object Model)
 
Danke! Jetzt klappt es mit dem MarkerClick.

Ich muss echt sagen, der Support für dieses Framework ist mehr als überragend. Vielen Dank für die schnellen und stets hilfreichen Antworten.

Nochmal zum KeyDragZoom: Das klingt genau nach dem, was ich brauche. Aber wie verwendet man denn diese Bibliothek innerhalb des Delphi-Frameworks?

Gibt es dazu eine Beispieldatei?

Thom 19. Nov 2012 18:41

AW: Google Maps über COM (Component Object Model)
 
Vielen Dank für das Lob! Das hört/liest man natürlich sehr gern und es motiviert auch stark zum Weitermachen. :-D

Einen Delphi-Wrapper für die KeyDragZoom-Bibliothek gibt's als kleines Dankeschön für eine Spende, die dem Unterhalt des Servers für die neue Homepage und die Online-Funktionen zugute käme (siehe ersten Beitrag, Abschnitt Erweiterungen).
Ansonsten können natürlich beliebige JavaScript-Bibliotheken mit Hilfe der Delphi-To-JavaScript-Bridge (also der Units, die sich im Verzeichnis JScript befinden) in das Framework eingebunden werden.

HJay 19. Nov 2012 23:20

AW: Google Maps über COM (Component Object Model)
 
@Thom: Aha ja, das hatte ich übersehen. Die Spende ist bereits unterwegs! Ich freue mich schon auf die Wrapper! Danke!

Thom 20. Nov 2012 00:18

AW: Google Maps über COM (Component Object Model)
 
Vielen Dank, ist angekommen! Email ist unterwegs.

HJay 20. Nov 2012 10:36

AW: Google Maps über COM (Component Object Model)
 
KeyDragZoom klappt prima, Optionen und Events funktionieren auch problemlos. Wieder ein klasse Wrapper!

Allerdings benötige ich für mein Programm letztlich nur die Markierungsfunktion und würde sehr gerne den tatsächlichen Zoom verhindern. Der Nutzer soll nur einen Bereich selektieren können und auf diese Art die darin befindlichen Markierungen selektieren können.

Derzeit speichere ich als Workaround Maps.Zoom und Maps.Center ab und stelle sie nach DragEnd wieder her. Aber das sieht optisch eher bescheiden aus, da das Zoom-Rechteck in der Bildmitte animiert wird und so.

Hast Du eine Idee, wie man die DragKeyZoom-Bibliothek so ändern könnte, dass der Zoom entfällt und man nur das passende Event zurückbekommt?

Nachtrag: Ich habe mir schon mal das keyzoomdrag.js aus dem Netz angeschaut. Dort könnte man wohl die entsprechende Zoom-Routine leicht entfernen. Kannst Du mir die bug-freie keydragzomm.js aus dem res-File zur Verfügung stellen? Mit der Internetversion klappt nicht einmal die unmodifizierte Verwendung.

Thom 20. Nov 2012 12:30

AW: Google Maps über COM (Component Object Model)
 
Schön, daß es bei Dir funktioniert!

Die Email mit der angepaßten Bibliothek ist unterwegs.
Du müßtest dort wahrscheinlich nur die Zeilen 743-746 auskommentieren, die Bibliothek packen und in die Resourcendatei kompilieren.

HJay 21. Nov 2012 15:43

AW: Google Maps über COM (Component Object Model)
 
@Thom: Ja, nochmals vielen Dank, hat alles tadellos geklappt. Die Markierungsfunktion sieht jetzt schick aus und funktioniert perfekt.

Ich habe eine neue res-Datei erzeugt, aber die Bibliothek noch nicht gepackt. Muss ich mal schauen, wie das geht. Wie groß sind denn die Performancevorteile?

Thom 21. Nov 2012 16:42

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

An der Performance wird sich wahrscheinlich nicht ändern - nur die Größe der fertigen Exe würde etwas reduziert, da die Resource dann kleiner ist. Wenn man sich allerdings die mit jeder neuen Delphi-Version steigenden Exe-Größen anschaut, spielen die paar KByte wahrscheinlich auch keine entscheidende Rolle mehr... :roll:

Packen kannst Du die Datei eigentlich mit jedem beliebigen JavaScript-Online-Kompressor.
Da in neueren Delphi-Versionen schon eine zip-Funktionalität eingebaut ist, bestände auch die Möglichkeit, die JavaScript-Bibliothek vor der Kompilierung in die res-Datei mittels zip-Verfahren zu komprimieren und dann im laufenden Betrieb wieder aus der Resource zu lesen und anschließend zu dekomprimieren.

HJay 21. Nov 2012 22:51

AW: Google Maps über COM (Component Object Model)
 
Mir ist aufgefallen, dass der TWebBrowser, der für die GoogleMap verwendet wird, keinen Rahmen hat.

Mir ist es selbst noch nicht gelungen, einen TWebBrowser ohne lästigen und relativ unschönen 3D-Rahmen darzustellen. Magst Du verraten, wie das funktioniert? Ich würde gerne einen zweiten TWebBrowser auf meiner Form haben, der auch rahmenlos ist.

Thom 22. Nov 2012 00:55

AW: Google Maps über COM (Component Object Model)
 
Kein Problem:
Das macht das IDocHostUIHandler-Interface, das in der Unit DocHostUIHandler im Verzeichnis JScript definiert ist. Die für das Framework notwendige Implementierung übernimmt das Objekt TDocHostUIHandler in der Unit BrowserTools. Dort ist für den Rahmen die Methode GetHostInfo zuständig.

Falls Dir das zu kompliziert ist, kannst Du auch hierfür das Framework verwenden, indem Du kein TScript-, sondern nur ein TCustomScript-Objekt für den betreffenden Browser anlegst:
Delphi-Quellcode:
uses
  ..., JScriptObjects, gmAPI, ...;

if Script(WebBrowser2)=nil
  then TCustomScript.Create(WebBrowser2);
Du mußt dann allerdings beachten, daß Du bei jedem Aufruf der Funktion Script() den betreffenden Browser als Parameter übergibst:
Delphi-Quellcode:
with Script(WebBrowser1) do
  [...]
Die Variante ohne Parameter funktioniert nur in Single-WebBrowser-Projekten.

HJay 22. Nov 2012 13:01

AW: Google Maps über COM (Component Object Model)
 
Das ist ja mal wieder eine Hammerantwort. Vielen Dank für die Details.

Die erste Lösung konnte ich aber noch nicht ganz nachvollziehen. Welchen konkreten Aufruf müsste ich ausführen, damit ein WebBrowser den Rahmen verliert?

Die Lösung mit TCustomScript wäre ideal, da ich ohnehin überall Scipt(WebBrowser1) verwende, da ich bereits erfolgreich zwei Browser im Project mit GoogleMaps verwende.

Allerdings bekomme ich mit "if Script(WebBrowser2) = nil then TCustomScript.Create(WebBrowser2);" eine Exception aus BrowserTools.GetDispID() mit "Unbekannter Name". Irgendeine Idee?

Vielen Dank im voraus!

Thom 22. Nov 2012 14:47

AW: Google Maps über COM (Component Object Model)
 
Da mußt DU nichts aufrufen sondern das funktioniert nach dem Motto: Ruf' mich nicht an, ich rufe Dich an. :)
Du stellst nur das Interface bereit, das dann vom WebBrowser abgefragt wird, wenn es dem IE danach ist.

Die Exceptions werden ausgelöst, weil ein Objekt aus WebBrowser2 im WebBrowser1 genutzt werden soll. Das geht aber nicht, da die Gültigkeit der verwendeten Interfaces auf den jeweiligen Browser beschränkt ist.

Ein Beispiel dazu:
Wird mit TMarkerOptions.Create ein Objekt erstellt, geschieht das im Kontext des zuletzt erstellten Script-Objektes (was dann wahrscheinlich WebBrowser2 ist). Wird jetzt der Marker im WebBrowser1 mit New(Script(WebBrowser1).Google.Maps.Marker(MarkerO ptions)) oder implizit mit with Script(WebBrowser1) do New(Google.Maps.Marker(MarkerOptions)) erstellt, geht das aus den anfangs geschilderten Gründen schief.
Hier muß also auch das MarkerOptions-Objekt im entsprechenden Kontext erstellt werden. Um das zu steuern, muß in der Create-Methode das entsprechende Script-Objekt angegeben werden: TMarkerOptions.Create(Script(WebBrowser1)).

Da das mächtig umständlich ist, werden in Version 3 auch für alle Hilfsobjekte entsprechende New()-Funktionen eingeführt:
Delphi-Quellcode:
with Script(WebBrowser1) do
begin
  MarkerOptions:=New(Google.Maps.MarkerOptions);
  [...]
  New(Google.Maps.Marker(MarkerOptions));
end;
Damit "wissen" alle Objekte, zu welchem WebBrowser sie gehören sollen.

Bis dahin muß leider noch das entsprechende Script-Objekt als Parameter an den Constructor übergeben werden, wenn Objekte auf die herkömmliche Delphi-Art erstellt werden.

HJay 22. Nov 2012 15:20

AW: Google Maps über COM (Component Object Model)
 
Ich sag es ja immer: Kaum macht man alles richtig, schon klappt es.

Ich habe bei allen Create() das Script(WebBrowser)-Argument ergänzt und jetzt klappt die TCustomScript-Version des rahmenlosen TWebBrowser.

Super! Vielen Dank!

Thom 22. Nov 2012 15:32

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

HJay 22. Nov 2012 22:21

AW: Google Maps über COM (Component Object Model)
 
Ganz kurze Frage: Unterstützt das Framework nicht TPolyline.Visible? Laut der API-Referenz sollte es die Variable eigentlich geben.

Zweite Frage: Ich muss leider noch mal auf den hübschen rahmenlosen WebBroswer zurückkommen. Leider zeigt er auch keine vertikale Scrollbars mehr an, wenn der Inhalt nicht vollständig zu sehen ist. Gibt es eine Möglichkeit, auch ohne Rahmen einen Scrollbar zu bekommen?

Thom 22. Nov 2012 23:28

AW: Google Maps über COM (Component Object Model)
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das kommt in der Version 3 - die 2 unterstützt das noch nicht, da die Eigenschaft Visible erst relativ neu ist.
Das Polyline-Objekt selbst unterstützt die Sichbarkeit nur über Getter- und Setter-Methoden. Du kannst das Objekt aber jetzt schon selbst erweitern (Unit gmOverlaysPolylinePolygon):
Delphi-Quellcode:
  TPolyline = class(...)
    [...]
  public
    procedure SetVisible(Value: Boolean);
    function GetVisible: Boolean;
    [...]
  end;

procedure TPolyline.SetVisible(Value: Boolean);
begin
  Exec('setVisible',[Value]);
end;

function TPolyline.GetVisible: Boolean;
begin
  Result:=VarAsBoolean(Exec('getVisible'));
end;
Das Problem mit den Scrollbars kann ich bei mir nicht reproduzieren. Ich hatte das mit zwei TWebBrowser-Komponenten nebeneinander getestet - der eine mit einer Karte, der andere mit der Google-Suchseite. Die Google-Suchseite wird korrekt mit einer horizontalen und einer vertikalen Leiste angezeigt:
Anhang 38118
Das müßte bei Dir also andere Ursachen haben. Welche IE-Version verwendest Du?

HJay 23. Nov 2012 11:29

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

Zitat von Thom (Beitrag 1192498)
Das müßte bei Dir also andere Ursachen haben. Welche IE-Version verwendest Du?

Interessant! Es hängt scheinbar von der Website ab, ob Scrollbars angezeigt werden oder nicht. Was es nicht alles gibt.

Wenn ich google.de verwenden, dann habe auch ich Scrollbars, wenn ich zum Beispiel geocaching.com verwende, dann bleibt das Feld ohne Scrollbars, obwohl es bei weitem nicht passt.

Meine eigenen Inhalte schiebe ich eigentlich als HTML-Rohtext direkt ins WebBrowser.Document und da entstehen nie Scrollbars.

HJay 23. Nov 2012 11:41

AW: Google Maps über COM (Component Object Model)
 
Zu Visible: Der Compiler verweigert "Exec('setVisible',Value);" als "es gibt keine überladene Version, die mit diesen Argumenten aufgerufen werden kann.

Ich nehme aber eigentlich auch an, dass man Visible in PolylineOptions genau analog und parallel zur Option "Editable" ergänzen müsste.

Thom 23. Nov 2012 12:09

AW: Google Maps über COM (Component Object Model)
 
Sorry - da fehlten die eckigen Klammern um den Parameter. :pale:

Bei den PolylineOptions hast Du Recht: Das sind aber Properties (Ansprechbar mit GetPropAs...() und SetProp()), Methoden werden mit Exec() aufgerufen.

HJay 23. Nov 2012 12:51

AW: Google Maps über COM (Component Object Model)
 
Klappt jetzt mit TPolyline.visibility. Sehr praktisch so!

Vielen Dank! Was für ein klasse Support!

Thom 23. Nov 2012 14:38

AW: Google Maps über COM (Component Object Model)
 
Danke! :-D

Ich habe die Sache mit den nicht sichtbaren Scroll-Leisten bei mir noch einmal untersucht.
Das Problem ist, daß der IE, wenn er als ActiveX - zum Beispiel in Form des TWebBrowser's - arbeitet, anders reagiert, als der Browser selbst. Er arbeitet dann nämlich standardmäßig als IE7 (!).
Abhilfe schafft ein neuer Eintrag in der Registry:
HKEY_CURRENT_USER\Software\{Wow6432Node\}Microsoft \Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULA TION (ohne die von der Forensoftware eigenmächtig eingefügten Leerzeichen!!! :evil:)
Dort muß der Name des eigenen Programmes eingetragen werden (ohne Pfad - also zum Beispiel "Project1.exe") mit einem DWord-Wert. Dieser Wert ist abhängig von der verwendeten Browser-Version und beträgt beim
  • IE8: 8000 ($1F40)
  • IE9: 9000 ($2328)
  • IE10: 10000 ($2710)
Dann werden auch die Scrollbars angezeigt. :)

HJay 23. Nov 2012 16:25

AW: Google Maps über COM (Component Object Model)
 
@Thom: Krasse Angelegenheit! Wie soll man darauf kommen oder genauer gesagt, wie kommst du auf so etwas?! Echter Wahnsinn.

Leider hat der Registry-Hack bei mir noch nicht funktioniert. Einen Schlüssel "Wow6432Node" gabe es schon und darunter blieben die neuen Schlüssel wirkungslos; einen Schlüssel mit geschweiften Klammern und Backslash darf man nicht anlegen und ein Schlüssel "{Wow6432Node}" brachte auch nicht den Erfolg. "Internet Explorer" habe ich jeweils mit und ohne Leerzeichen probiert, alle anderen Leerzeichen weggelassen.

Muss das System zur Wirkung neu gebootet werden?

Ergänzung: Microsoft schreibt unter http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx folgenden Schlüssel in HKEY_LOCAL_MACHINE und dort gibt es tatsächlich auch schon den gesamten Schlüsselbaum bis ganz unten. Aber auch dort hat die Ergänzung meiner exe-Datei bisher keinen Erfolg gehabt.
Code:
HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_BROWSER_EMULATION
                     contoso.exe = (DWORD) 00009000

Thom 23. Nov 2012 16:35

AW: Google Maps über COM (Component Object Model)
 
Die geschweifte Klammer war nur als Option gedacht, falls man ein 64Bit-System besitzt und eine 64Bit-Exe kompiliert. Bei einem 32Bit-Windows oder eine 32Bit-Exe muß das einfach herausgelassen werden.
"Internet Explorer" bitte mit Leerzeichen - nur die anderen Leerzeichen wurden von der Forensoftware (wäre schön, wenn Daniel das mal ändern könnte) hinzugefügt.
Ein Neustart des Systems ist nicht notwendig - lediglich das eigene Programm muß neu gestartet werden (falls es gerade läuft).

HJay 23. Nov 2012 16:44

AW: Google Maps über COM (Component Object Model)
 
Hm, bei mir ohne Wirkung.

Unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULA TION\ hat es auch keine Wirkung gezeigt, weder mit Project1.exe als Mini-Test-Version analog Deiner Fassung noch mit dem richtigen Programm.

Thom 23. Nov 2012 16:49

AW: Google Maps über COM (Component Object Model)
 
Probier's bitte mal mit HKEY_CURRENT_USER.

HJay 23. Nov 2012 17:24

AW: Google Maps über COM (Component Object Model)
 
Ich habe das Problem jetzt gelöst bekommen -- mit der live-Erzeugung des Reg-Key vom Programm aus. Keine Ahnung, warum das sonst nicht will. Immerhin geht es jetzt und das ist super: Rahmenlos und mit Scrollbars.

Danke für Deine Hilfe, der Reg-Key war der Kern der Lösung.

Thom 23. Nov 2012 17:30

AW: Google Maps über COM (Component Object Model)
 
Super!
In der Version 3 wird diese Funktion auch mit integriert sein.

DelphiFan2008 25. Nov 2012 20:01

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

ich hatte vor ein paar Tagen Probleme mit Marker und dem OnClick Event. Dein Vorschlag war
Delphi-Quellcode:
procedure MarkerClick(Sender: TObject; Event: gmEvents.TEvent);
[...]
die Fehlermeldung kam immer noch, habe gesehen dass HJay ein ähnliches Problem hat und dazu deine Antwort

Delphi-Quellcode:
uses ..., HTMLObjekts, ...

procedure MarkerClick(Sender: TObject; Event: HTMLObjects.TEvent);
[...]
mit Hinweis auf noch ... Version 2.0 ...

Bei mir tuts nach dieser Änderung und einigem probieren und suchen auch

Gruss DelphiFan2008

Thom 25. Nov 2012 21:46

AW: Google Maps über COM (Component Object Model)
 
Entschuldigung wegen der verursachten Verwirrung - das liegt daran, daß ich gedanklich voll in der neuen Version stecke und zum Testen immer die "alte" Version hervorkramen muß. :?
Wie schon öfters geschrieben: In der Version 3 wird vieles einfacher. :-D

swaters 6. Dez 2012 04:35

Copy of Response(TDirectionResponse)
 
Thom,
I was wondering how I would create a copy of the Response from a directions request.
I've tried a few methods but no success.

Thanks in advance.

swaters

Thom 6. Dez 2012 12:50

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

Sorry - this is currently only available by using the internal function CreateObjectWrapper.
Delphi-Quellcode:
uses
  ..., JScriptObjects, //<- function CreateObjectWrapper
  gmAPI, ...;

type
  TDirectionsResultAccess = class(TDirectionsResult); //for Script-property-access (currently protected)

procedure xxx.DirectionsCallback(Sender: TObject; Result: TDirectionsResult; Status: String);
var
  CopyFromResult: TDirectionsResult;
begin
  CopyFromResult:=TDirectionsResult(CreateObjectWrapper(TDirectionsResultAccess(Result).Script,TDirectionsResult,Result.Disp));
  [...]
end;
In the next version interfaces are used, so that the Result-object is not lost (destroyed).
The property Script will be public.

swaters 6. Dez 2012 13:22

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

Great project. Have watched keenly for awhile now. Still having trouble grasping some of the concepts.

Thanks again.

Thom 6. Dez 2012 23:17

AW: Google Maps über COM (Component Object Model)
 
Thank you very much! :-D

I made some illustrations. Maybe they help to understand the concept of the framework a little bit better.
Image1
Image2

Do you have other ideas or questions for a better understanding?

swaters 8. Dez 2012 15:25

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

Zitat von Thom (Beitrag 1194609)
Thank you very much! :-D

I made some illustrations. Maybe they help to understand the concept of the framework a little bit better.
Image1
Image2

Do you have other ideas or questions for a better understanding?

Thank-you Thom.

Funnily enough I do have another question. I bet you weren't expecting that eh?: Roll:

In your post #129 you attached a compiled program, DirectionsWithMultipleDestinations.zip. I was wondering if you could explain how to achieve that?

Your previous answer worked as I was hoping, thank-you again. This question is an extension of the other.
I now have my DirectionResults in a usable ObjectList and can render then through repitition. But each time I call DirectionsRenderer[0].SetDirections(FResultList.Items[i]) the previous render is erased. This is not what I am trying to achieve.

Your compiled example in post #129 seems to achieve what I am trying to do.

Thanks again, and Thanks in advance.

Thom 8. Dez 2012 16:53

AW: Google Maps über COM (Component Object Model)
 
No problem. :lol:

Each DirectionRenderer can only display one (!) route. The renderer will pass a new route, the previous is removed.
If different routes are shown, several renderers are needed. In the example #129 are this three different routes and therefore three renderers.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 Uhr.
Seite 9 von 14   « Erste     789 1011     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz