Delphi-Version: 7
Problems with Google API
Liste der Anhänge anzeigen (Anzahl: 1)
Hey Guys,
Ich hab ein Programm geschrieben das die Goole-API benutzt und die folgenden uses benötigt:
Delphi-Quellcode:
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 |
AW: Problems with Google API
Hallo Christoph,
das sieht nach meinem Framework aus... :lol: Poste mal bitte Deinen Quelltext - ohne diesem kann ich da leider keine Diagnose erstellen... :stupid: |
AW: Problems with Google API
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:
Hoffe das bringt dir etwas, wenn nicht sag bescheid was du noch brauchst,
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; oder wir treffen uns ma bei Skype dann kann ich dirs direkt zeigen? Christoph |
AW: Problems with Google API
Hallo Christoph,
keine Ursache! :-D 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... :pale: |
AW: Problems with Google API
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 |
AW: Problems with Google API
Ok. 8-)
|
AW: Problems with Google API
[OT]
Wird das was für den MS Flight Simulator X? Wenn ja, was? :mrgreen: [/OT] |
AW: Problems with Google API
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 :-P Christoph |
AW: Problems with Google API
Cool. :) Danke für die Info und viel Glück beim Realisieren. :thumb:
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. 8-) |
AW: Problems with Google API
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:
Delphi-Quellcode:
Vielen Dank nochmal Thomas!
Delphi-Quellcode:
var Point1: Types.TPoint; Point2: gmBase.TPoint; begin //... Point1.X:=2; Point2.X:=2; //... end; 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 ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 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