Einzelnen Beitrag anzeigen

Sebastian78

Registriert seit: 15. Nov 2012
3 Beiträge
 
#317

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

  Alt 15. Nov 2012, 21:24
Ertsmal ein Kompliment für die tolle Arbeit.

Ich bin jetzt zunächst mal durch die Demos durch, und komme langsam klar. Ein Problem, wurde hier auch schon mal angesprochen:

Delphi-Quellcode:
  
    if Script = nil then
      with TScript.Create(WebBrowser1) do
        LoadAPI(InitMap); //<--- habe ich von LoadApiAsync in LoadApi geändert

    with Script do
    begin
      Geocoder.Geocode(TGeocoderRequest.Create(s), //<----- hier Zugriffsverletzung
        procedure(Sender: TObject; Results: TGeocoderResultArray;
          Status: String)
        var
          MarkerOptions: TMarkerOptions;
        I: Integer;
        idx : Integer;
        abort : Boolean;
        begin
          abort := false;
          if Status = Google.Maps.GeocoderStatus.OK then
          begin
            Map.SetCenter(Results[0].Geometry.Location);
            MarkerOptions := TMarkerOptions.Create;
            with MarkerOptions do
            begin
              Map := self.Map;
              Position := Results[0].Geometry.Location;
            end;
            New(Google.Maps.Marker(MarkerOptions));
          end
          else
            ShowMessage('Karte kann nicht angezeigt werden. ' +
              'Originalmeldung: ' + Status);
        end);
    end;
  end;
Wenn ich das API im onShow oder onCreate initialisiere, und dann einen Moment warte, bis ich den Rest aufrufe, läuft alles. Durch die Umstellung auf LoadAPI, sollte aber doch sichergestellt sein, dass das API vollständig geladen ist.

Freu mich auf Deine Antwort.

Viele Grüße

Sebastian
  Mit Zitat antworten Zitat