AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problems with Google API

Ein Thema von BlueLiquidCell · begonnen am 27. Mai 2011 · letzter Beitrag vom 30. Mai 2011
Antwort Antwort
BlueLiquidCell

Registriert seit: 29. Jun 2010
63 Beiträge
 
Delphi 2 Desktop
 
#1

Problems with Google API

  Alt 27. Mai 2011, 18:10
Delphi-Version: 7
Hey Guys,

Ich hab ein Programm geschrieben das die Goole-API benutzt und die folgenden uses benötigt:

DocHostUIHandler, BrowserTools, gmAPI, gmBase, gmMap, gmPolylinePolygon, gmEvents

In dem Programm funktioniert alles wunderbar. Dann wollte ich das Programm in ein anderes integrieren das auf verschiedenen tabs, verschiedene dinge anzeigt. Doch wenn ich die uses einbinde crashed es sofort am anfang ohne das jegliche funktion eingebaut ist.

Das Problem ist die "gmAPI". Solange die nicht dabei ist, geht zumindest das initialisieren. Doch wenn die "gmAPI" mit drin ist (so wie oben) dann crashed es in der "DispObject" in Zeile 314 (Zeile mit BrowserTools... hier) und es kommt eine Exeption Notification (error.png).

Delphi-Quellcode:
procedure TDispObject.SetProp(const Name: String; const Value: OleVariant; CreateIfNotExists: Boolean = false);
begin
  if CreateIfNotExists and not PropertyExists(Name)
    then AddProp(Name);
  BrowserTools.SetProp(FDisp,Name,Value,{false}true);
end;

Irgendjemand ne idee?

Würd mich echt freuen.

Christoph
Miniaturansicht angehängter Grafiken
error.png  
  Mit Zitat antworten Zitat
Thom

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

AW: Problems with Google API

  Alt 27. Mai 2011, 19:11
Hallo Christoph,

das sieht nach meinem Framework aus...

Poste mal bitte Deinen Quelltext - ohne diesem kann ich da leider keine Diagnose erstellen...
Thomas Nitzschke
Google Maps mit Delphi

Geändert von Thom (27. Mai 2011 um 21:35 Uhr)
  Mit Zitat antworten Zitat
BlueLiquidCell

Registriert seit: 29. Jun 2010
63 Beiträge
 
Delphi 2 Desktop
 
#3

AW: Problems with Google API

  Alt 27. Mai 2011, 19:38
Hallo Thomas

Das ist gut möglich
Dann erstmal vielen dann für das Framework und deine Hilfe!

Hier die einbindung die Funktioniert:
Delphi-Quellcode:
program MapControls;

{$INCLUDE google/gmConfig.inc}

uses
  Forms,
  Unit1 in 'Unit1.pas{Form1},
  Unit2 in 'Unit2.pas{Form2},

  // Google JScripts
  DocHostUIHandler in 'google\DocHostUIHandler.pas',
  BrowserTools in 'google\BrowserTools.pas',
  DispObject in 'google\DispObject.pas',
  JScriptObjects in 'google\JScriptObjects.pas',
  HTMLObjects in 'google\HTMLObjects.pas',

  // Google APIs
  gmAPI in 'google\gmAPI.pas',
  gmBase in 'google\gmBase.pas',
  gmDirectionsRenderer in 'google\gmDirectionsRenderer.pas',
  gmMVC in 'google\gmMVC.pas',
  gmEvents in 'google\gmEvents.pas',
  gmDirectionsService in 'google\gmDirectionsService.pas',
  gmMap in 'google\gmMap.pas',
  gmStreetView in 'google\gmStreetView.pas',
  gmMarker in 'google\gmMarker.pas',
  gmPolylinePolygon in 'google\gmPolylinePolygon.pas',
  gmElevationService in 'google\gmElevationService.pas',
  gmGeocoder in 'google\gmGeocoder.pas',
  gmLayers in 'google\gmLayers.pas',
  gmOverlays in 'google\gmOverlays.pas',
  gmInfoWindow in 'google\gmInfoWindow.pas';

{$R *.res}

begin
  Application.Initialize;
{$IFDEF DELPHI2007_UP}
  Application.MainFormOnTaskbar := True;
{$ENDIF}
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

Delphi-Quellcode:
unit Unit1;

interface

{$INCLUDE google/gmConfig.inc}

uses
  Windows, Messages, SysUtils, Variants, Classes,
  Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, ExtCtrls, DocHostUIHandler,
  BrowserTools, gmAPI, gmBase, gmMap, StdCtrls, RotImg, gmPolylinePolygon, gmEvents,Unit2, math;


Die die nicht funktioniert schauts so aus:

Delphi-Quellcode:
program FSXControl;

uses
  FastShareMem,
  Forms,
  UnitMain in 'UnitMain.pas{FormMain},
  UnitSplashScreen in 'UnitSplashScreen.pas{FormSplashScreen},
  dllheaders in 'dllheaders.pas',
  UnitAirplaneOverlay in 'UnitAirplaneOverlay.pas{FormAirplaneOverlay},


  // Google JScripts
  DocHostUIHandler in 'google\DocHostUIHandler.pas',
  BrowserTools in 'google\BrowserTools.pas',
  DispObject in 'google\DispObject.pas',
  JScriptObjects in 'google\JScriptObjects.pas',
  HTMLObjects in 'google\HTMLObjects.pas',

  // Google APIs
  gmAPI in 'google\gmAPI.pas',
  gmBase in 'google\gmBase.pas',
  gmDirectionsRenderer in 'google\gmDirectionsRenderer.pas',
  gmMVC in 'google\gmMVC.pas',
  gmEvents in 'google\gmEvents.pas',
  gmDirectionsService in 'google\gmDirectionsService.pas',
  gmMap in 'google\gmMap.pas',
  gmStreetView in 'google\gmStreetView.pas',
  gmMarker in 'google\gmMarker.pas',
  gmPolylinePolygon in 'google\gmPolylinePolygon.pas',
  gmElevationService in 'google\gmElevationService.pas',
  gmGeocoder in 'google\gmGeocoder.pas',
  gmLayers in 'google\gmLayers.pas',
  gmOverlays in 'google\gmOverlays.pas',
  gmInfoWindow in 'google\gmInfoWindow.pas';


{$R *.res}

begin
  Application.Initialize;
{$IFDEF DELPHI2007_UP}
  Application.MainFormOnTaskbar := True;
{$ENDIF}  
  Application.CreateForm(TFormSplashScreen, FormSplashScreen);
  Application.CreateForm(TFormMain, FormMain);
  Application.Run;
end.
Delphi-Quellcode:
unit UnitMain;

interface

{$INCLUDE google/gmConfig.inc}

uses
  FastShareMem, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, ComCtrls, jpeg, Menus, math, OleCtrls, DBCtrls,
  FPCUser, dllheaders, ColorGrd, clipbrd, mmSystem, SHDocVw,
  DocHostUIHandler, BrowserTools, gmAPI, gmBase, gmMap, RotImg, gmPolylinePolygon, gmEvents;
Hoffe das bringt dir etwas, wenn nicht sag bescheid was du noch brauchst,
oder wir treffen uns ma bei Skype dann kann ich dirs direkt zeigen?
Christoph
  Mit Zitat antworten Zitat
Thom

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

AW: Problems with Google API

  Alt 27. Mai 2011, 20:47
Hallo Christoph,

keine Ursache!

Tja - die von Dir geposteten Programmteile sind leider wenig aussagekräftig, da daraus nicht hervorgeht, wie Du Google Maps verwendest.

Benutzt Du mehrere TWebBrowser-Komponenten? Falls Ja, mußt Du auf die korrekte Verwendung der Script-Objekte achten, da jede Browser-Komponente ein eigenes besitzt (siehe Demo 9 - Multi Maps). Dann kann bzw. darf keinesfalls die globale Variable Script verwendet werden!

Du kannst - wenn Du möchtest - den kompletten Quelltext als Anhang posten. Dann könnte ich ihn bei mir durch den Debugger jagen. Falls Du nicht möchtest, daß jeder den Quelltext herunterladen kann, könntest Du ihn mir auch als Email-Anhang schicken. Meine Email-Adresse ist im Profil ersichtlich (vCard). Skype besitze ich nicht...
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
BlueLiquidCell

Registriert seit: 29. Jun 2010
63 Beiträge
 
Delphi 2 Desktop
 
#5

AW: Problems with Google API

  Alt 27. Mai 2011, 20:58
Hallo Thomas

Ja das hab ich fast befürchtet das das nicht reicht

Ich schau mir das mit den mehrern Webbrowser Komponenten mal an und schreib dir sonst morgen mal ne mail!

Vielen Dank
Christoph
  Mit Zitat antworten Zitat
Thom

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

AW: Problems with Google API

  Alt 27. Mai 2011, 21:00
Ok.
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Problems with Google API

  Alt 27. Mai 2011, 21:00
[OT]

Wird das was für den MS Flight Simulator X? Wenn ja, was?

[/OT]
  Mit Zitat antworten Zitat
BlueLiquidCell

Registriert seit: 29. Jun 2010
63 Beiträge
 
Delphi 2 Desktop
 
#8

AW: Problems with Google API

  Alt 27. Mai 2011, 21:17
Hey

Mist hab ich die Headline dringelassen

Ja wirds bzw. soll es werden.

Der Teil mit Google ist nur ein kleiner Teil des ganzen Programms, welches Folgende Funktionen hat:

Flight Tracking, Anzeige des Flugtracks, Differenzberechnung zwischen zwei Punkten, Umschaltung zwischen KartenTyps, Zoom (some more to come)

Der Rest des Programms ist sozusagen nen 2tes Cockpit mit allen schaltern, leichtere eingabe etc und erweiterten möglichkeiten, und ist fürn Touchscreen gedacht(kann aber auch so genutz werden)

Reicht dir das als info

Christoph
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Problems with Google API

  Alt 27. Mai 2011, 22:03
Cool. Danke für die Info und viel Glück beim Realisieren.

Hab vor 'ner Weile auch mal'n "kleines" AddOn in (Turbo) Delphi angefangen, sowas wie FS Passengers, weil mir das teilweise zu eingeschränkte Funktionen hatte und ich damit zB keine Cargo Airlines simulieren konnte: http://vax.108bits.de/ - Bastel aber nur in meiner Freizeit dran run, wenn ich Lust und Laune hab.

Ist auf jeden Fall 'n spannendes und auch spaßiges Betätigungsfeld.
  Mit Zitat antworten Zitat
BlueLiquidCell

Registriert seit: 29. Jun 2010
63 Beiträge
 
Delphi 2 Desktop
 
#10

AW: Problems with Google API

  Alt 30. Mai 2011, 19:25
So dank tatkräfiger Unterstützung von Thomas konnte das Problem lokalisiert werden.

Und damit die, die das gleiche haben auch die Lösung haben, werd ich die ma kurz posten.

Zitat:
Zum Typ TPoint:
Den gibt's ein mal in den Units Windows und Types: Dort ist es ein Record aus den Werten X und Y. Dann gibt es für das Google Maps API noch einmal diesen Typ in der Unit gmBase: Allerdings ist es dort ein (JavaScript)Objekt.

Bindest Du jetzt beide (bzw. alle drei) Units in Deine uses-Klauses ein, muß Du in Deinem Quelltext einfach davor schreiben, welchen Type der Compiler verwenden soll:

Delphi-Quellcode:
Delphi-Quellcode:
var
  Point1: Types.TPoint;
  Point2: gmBase.TPoint;
begin
  //...
  Point1.X:=2;
  Point2.X:=2;
  //...
end;
Vielen Dank nochmal Thomas!

Schöne Grüße
Christoph

@ nuclearping
Ja das ist es, ich arbeite aber auch nur in der Freizeit dran, deswegen gehts meistens auch nur langsam vorwärts
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr.
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