Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Access Violations mit TWebBrowser (https://www.delphipraxis.net/96108-access-violations-mit-twebbrowser.html)

Benedikt 18. Jul 2007 23:01


Access Violations mit TWebBrowser
 
Hi,

ich bekomme hier (konnte es leider bisher nur auf einem Rechner testen) regelmäßig AccessViolation wenn ich folgende Seite mit dem TWebBrowser aufrufe. D.h. ich gebe sie einfach als Parameter der Navigate-Funktion an.
Dann bekomme ich nicht nachvollziehbare AVs - auch nicht regelmäßig - und der WebBrowser verweigert danach den Dienst.
Hat irgendwer eine Ahnung wie ich das Umgehen könnte oder Ähnliches - bzw. kann jemand den Fehler nachvollziehen und hat eine zuverlässige Lösung dafür?

Hier die Seite bei der mir das aufgefallen ist:
http://www.selfphp.de/funktionsrefer...onen/array.php
http://www.selfphp.de/funktionsrefer...tionen/abs.php
http://www.selfphp.de/funktionsrefer...ionen/acos.php

Mit hoher Wahrscheinlichkeit kam der Fehler dann, wenn ich zwischen verschiedenen Seiten der SelfPHP-Funktionsreferenz hin und hergesprungen bin - bei anderen Seiten ist mir dieser Fehler bisher nicht aufgefallen...
Übrigens kam der Fehler bei mir auch in anderen Applikationen die den TWebBrowser nutzen, beispielsweise die aus diesem Thread:
http://www.delphipraxis.net/internal...ght=webbrowser

Mit freundlichen Grüßen und bestem Dank!

MfG Benedikt Loepp

ken_jones 18. Jul 2007 23:58

Re: Access Violations mit TWebBrowser
 
Wenn man (Delphi 5,6 und 7) eine TWebBrowser Komponente verwendet und plötzlich einen "Floating Point Error" bekommt (War bei mir der Fall) so liegt das an der angezeigten Seite. Diese beinhaltet möglicherweise Inhalte mit JavaScript. Falls dort Fliesskommaoperationen durchgeführt werden, kann es vorkommen, dass diese einen Fliesskommafehler verursachen, da Delphi diese anders rundet.

Kurzum, damit der Fehler verschwindet muss Delphi eine andere Rundung beigebracht werden. Dies geschieht am einfachsten mit dem Befehl:

Set8087CW($133F);

Und dies am besten gleich zu beginn des Programmes, in der Initialize Sektion oder sogar noch früher.

Vielleicht hilft das auch bei dir...

Nuclear-Ping 19. Jul 2007 03:59

Re: Access Violations mit TWebBrowser
 
Ich will ja nicht klugscheissen, aber ich bezweifel, dass Delphi das JavaScript in einer TWebBrowser-Komponente interpretiert.

Ich spekuliere mal eher, dass die Exception der IE-Kompo von Delphi abgefangen und dargestellt wird und dass folgender Fall greift:
Zitat:

Zitat von Delphi Hilfe
[...] Außerdem bestimmt das Steuerwort, ob bei bestimmten Operationen mit Gleitkommawerten Exceptions ausgelöst werden. [...]

Es ist zum Beispiel empfehlenswert, alle Gleitkomma-Exceptions zu deaktivieren, wenn OpenGL zur Darstellung von 3D-Grafiken eingesetzt wird. Rufen Sie dazu (vor dem Aufruf einer OpenGL-Funktion) in der Ereignisbehandlungsroutine für OnCreate des Hauptformulars Set8087CW(0x133f) auf.

Set8087CW($133F) unterdrückt also nur die Exceptions.

Benedikt 19. Jul 2007 16:15

Re: Access Violations mit TWebBrowser
 
Im Prinzip helft ihr mir leider beide kein bisschen ;-) Wie ich bereits geschrieben hatte handelt es sich um eine Access Violation bei der von Floating Point Exception leider keine Rede ist. Hatte das auch schon einmal vorher so ausprobiert - jetzt nochmal - es hilft leider nicht.
Trotzdem Danke - evtl. hat aber jemand anders noch etwas dazu auf Lager?

Nuclear-Ping 19. Jul 2007 16:22

Re: Access Violations mit TWebBrowser
 
Delphi-Quellcode:
try
  WebBrowser1.Navigate ('...');
except
  {...}
end;
Schonmal damit versucht?

Benedikt 19. Jul 2007 20:59

Re: Access Violations mit TWebBrowser
 
Ja, damit hatte ich es auch schon versucht - keine Chance, das Programm stürzt trotzdem ab. Ich glaube der Fehler passiert erst nach dem eigentlichen Navigate intern in dem Webbrowser, deshalb ist dem auch so schwer beizukommen.
Musste jetzt allerdings gerade auf zwei anderen Rechnern feststellen dass es nicht zu dem Fehler kommt. Etwas merkwürdig das ganze - falls es noch jemand anderes direkt testen möchte ob es zu dem Fehler kommt, dann hab ich hier einen Link zu einem Testprogramm.

http://www.webocton.de/customer_files/webbrowser.exe

Wie gesagt, auf einem von drei Rechnern krieg ich damit sofort oder beim zweiten oder dritten Laden der Seite regelmäßig einen Absturz.

Nuclear-Ping 19. Jul 2007 22:06

Re: Access Violations mit TWebBrowser
 
Das rumnavigieren mit deinem Prog auf SelfPHP.de funzt hier ohne Probleme.
Windows Vista, IE 7. Scheint wohl was mit der IE-Version zu tun haben.

jakobwenzel 19. Jul 2007 22:13

Re: Access Violations mit TWebBrowser
 
Bei mir gehts unter XP HomeSP2 mit IE6 auch problemlos.

Nuclear-Ping 19. Jul 2007 22:18

Re: Access Violations mit TWebBrowser
 
Vielleicht sind irgendwelche IE-Sicherheitsrichtlinien dran schuld?

ken_jones 20. Jul 2007 14:30

Re: Access Violations mit TWebBrowser
 
Zitat:

Zitat von Nuclear-Ping
Ich will ja nicht klugscheissen, aber ich bezweifel, dass Delphi das JavaScript in einer TWebBrowser-Komponente interpretiert.
Ich spekuliere mal eher, dass die Exception der IE-Kompo von Delphi abgefangen und dargestellt

Hast ja sowas von Recht! Genau so ist es. Jetzt fragt sich nur noch, ob die Komponente selber das Problem verursacht, oder der IE auf welchen die Komponente sicherlich zugreifen wird.

@Benedikt: Bei mir läuft das Program übrigens unter W2K mit IE5, XP mit IE7 sowie Vista Ultimate mit IE7 ohne Probleme. Hast du alle Windows Updates auf der Kiste drauf? Viren und vor allem AdWare frei? Virenscanner aktiv? Und und und...


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.
Seite 1 von 2  1 2      

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