Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Routen Planner_ gibt Fehlermeldung aus (https://www.delphipraxis.net/168537-routen-planner_-gibt-fehlermeldung-aus.html)

Gandimann 27. Mai 2012 23:09

Routen Planner_ gibt Fehlermeldung aus
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Friends,
ich bin mit mein Google Routenplanner fast fertig. Es sind zwei verschiedene Versionen SDI und MDI.
SDI Version funktioniert einwandfrei.

Das Problem ist aber beim MDI Version undzwar:

wenn ich Menu Route Planner klicke Form_Planner zeigt sich an soweit so gut aaber wenn ich before Google Map überhaupt in Webbrowser
vollständig geaden ist, den Form_Planner schließe kommt ein Fehlermeldung:

'Access violation at adress 004EB9BB in module 'GoogleMapsTest.exe'. Read of adress 00000000.

In SDI Version kommt diese Fehlermeldung nicht.. !

Ich bin seit 2 Wochen dabei dies zu beheben leider ohne Erfolg.:wall:

Für jede Idee bin sehr dankbar.

Gandhimann :vernupft:

Thom 28. Mai 2012 00:16

AW: Routen Planner_ gibt Fehlermeldung aus
 
Könnte eventuell daran liegen:
Delphi-Quellcode:
 while HostedBrowser.ReadyState < READYSTATE_INTERACTIVE do
      Forms.Application.ProcessMessages;
Du gibst die Steuerung aus der Methode TWBGoogleMaps.LoadHTML ab, so daß der Anwender zwischendurch die Möglichkeit hat, das Fenster zu schließen, bevor die Methode ganz abgearbeitet wurde. Das führt dann fast zwangsläufig zu Zugriffsverletzungen.

Mal ganz abgesehen davon arbeitest Du noch mit der Version 2 des API's. Diese ist schon seit rund zwei Jahren als deprecated gekennzeichnet. Du solltest also so bald wie möglich auf die Version 3 umstellen. Dann sind auch keine Tricks mehr notwendig, um den API-Schlüssel zu vermeiden.

Thom 28. Mai 2012 18:05

AW: Routen Planner_ gibt Fehlermeldung aus
 
Ich habe Dein Programm einmal mit folgenden Veränderungen getestet:
Delphi-Quellcode:
type
  TfrmDirections = class(TForm)
    [...]
  private
    [...]
    FCanClose, FDoClose: Boolean;
  public
    [...]
  end;

procedure TfrmDirections.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if FCanClose then    
  begin
    Action:=caFree;
    frmDirections:=nil;
  end else
  begin
    Action:=caNone;
    FDoClose:=true; //Anforderung zum Schließen des Fensters merken
  end;
end;

procedure TfrmDirections.OnShowCallback(var aMsg: TMessage);
begin
  fWBGoogleMaps.LoadDefaultGoogleMapsDocument;
  fAllowResizeHandler:=true;
  FormResize(nil);
  FCanClose:=true; //ab hier darf das Fenster geschlossen werden
  if FDoClose //Fenster sollte schon vorher geschlossen werden
    then Close; //-> jetzt nachholen
end;
Damit traten bei mir keine Zugriffsverletzungen mehr auf.

Gandimann 29. Mai 2012 02:08

AW: Routen Planner_ gibt Fehlermeldung aus
 
Zitat:

Zitat von Thom (Beitrag 1168409)
Ich habe Dein Programm einmal mit folgenden Veränderungen getestet:
Delphi-Quellcode:
type
  TfrmDirections = class(TForm)
    [...]
  private
    [...]
    FCanClose, FDoClose: Boolean;
  public
    [...]
  end;

procedure TfrmDirections.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if FCanClose then    
  begin
    Action:=caFree;
    frmDirections:=nil;
  end else
  begin
    Action:=caNone;
    FDoClose:=true; //Anforderung zum Schließen des Fensters merken
  end;
end;

procedure TfrmDirections.OnShowCallback(var aMsg: TMessage);
begin
  fWBGoogleMaps.LoadDefaultGoogleMapsDocument;
  fAllowResizeHandler:=true;
  FormResize(nil);
  FCanClose:=true; //ab hier darf das Fenster geschlossen werden
  if FDoClose //Fenster sollte schon vorher geschlossen werden
    then Close; //-> jetzt nachholen
end;
Damit traten bei mir keine Zugriffsverletzungen mehr auf.

------VIEEEEELEN LIEEEBEN DANK......:thumb:

Mann lernt ja Tagtäglich....

Thank You for your kind help..Thomas

Gandhimann

Thom 30. Mai 2012 10:18

AW: Routen Planner_ gibt Fehlermeldung aus
 
Vielen Dank! Gern gemacht! :-D

Noch ein kleiner Hinweis zu Deinem Programm:
Du solltest die Taste F5 abfangen - sonst führt TWebBrowser ein Refresh durch und ist plötzlich leer...

Gandimann 30. Mai 2012 11:14

AW: Routen Planner_ gibt Fehlermeldung aus
 
Jo ! Danke.
Ich folge dein Rat und stelle gerade mein Programm auf Google API V3 um und werde denn zum Testen anbieten.

Have a nice Day !:thumb:
Gandhimann

Thom 30. Mai 2012 11:41

AW: Routen Planner_ gibt Fehlermeldung aus
 
Ja, das kannst Du gern machen.

Da sich durch die Umstellung sehr viel am JavaScript-Code ändert, steht Dir eine ganze Menge Arbeit bevor. Hast Du schon einmal darüber nachgedacht, das Framework hier aus dem Forum zu verwenden? Dann bräuchtest Du keine einzige Zeile JavaScript oder HTML...


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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