Autor Beitrag
maze2k
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 252

WIN 95, WIN NT 4.0, WIN 98, WIN 98SE, WIN 2000, RedHat Linux 7.3, Mandrake Linux 9.2, Knoppix Linux 3.3
D6 Pers
BeitragVerfasst: Fr 26.09.03 22:40 
So, gleich noch ein Beitrag... :)
ich arbeite gerade an einem umfangreichen Chat-Projekt und ich habe öfter das Problem mit Fehlermeldungen wegen Zugriffsverletzungen.

Gibt es eine Möglichkeit diese Zugriffsverletzungs-Errors mit einer except-routine zu unterdrücken?
Ich hab bereits im Internet geschaut, aber noch nichts passendes gefunden leider :-/

Mit "on E : Exception do" komm ich auch nicht weiter.

Kann mir irgendjemand helfen?
mstuebner
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 132

Win2000, XP
D7
BeitragVerfasst: Fr 26.09.03 23:02 
maze2k hat folgendes geschrieben:
Gibt es eine Möglichkeit diese Zugriffsverletzungs-Errors mit einer except-routine zu unterdrücken?

Indem man sie vermeidet? Wenn Du die Frage wirklich so meinst wie Du sie stellst solltest Du nochmal zu Kapitel 1 gehen. :)

Das wäre als wenn Du die überfahrene Oma verbergen willst, statt bei Rot an der Ampel anzuhalten.

Also überprüfe ob Deine Objekte bei der Erstellung wirklich erstellt werden (bei Misslingen wird eine Exception erzeugt) oder/und prüfe vor dem Zugriff auf Pointer ob diese nil sind.

_________________
mfg Matthias
maze2k Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 252

WIN 95, WIN NT 4.0, WIN 98, WIN 98SE, WIN 2000, RedHat Linux 7.3, Mandrake Linux 9.2, Knoppix Linux 3.3
D6 Pers
BeitragVerfasst: Fr 26.09.03 23:24 
*lol* ich hab mir schon gedacht, dass solche Antworten kommen.

Ich weiss auch, dass ich sie irgendwie umgehen kann, diese Exceptions.
Also erstmal werden alle Objekte geladen da bin ich mir sicher.

Erstmal kurz was überhaupt mein Problem ist:

Ich habe einen Chat der als Tray-Icon startet. Wenn man dann im PopUp auf Einstellungen klickt dann geht ein neues Formular auf, auf dem ein TWebbrowser sitzt.

Falls ich aber direkt nach Programmstart auf den Button für die Einstellungen klicke, dann kommt ab und zu (eher sehr selten) eine Zugriffsverletzung.

mom, ich paste mal etwas code rein :)

das is im OnCreate-Event der Einstellungen-Form:

ausblenden Quelltext
1:
2:
3:
 
Main.Hide; // Main -> TWebbrowser
Main.Navigate('blabla.php');


das OnShow-Event:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  if not(Main.Showing = true) then begin
    repeat
      if Main.LocationURL = 'blabla.php' then begin
        Main.OleObject.Document.Frames.Item(0).document.forms.item(0).elements.item(0).value := TrayForm.myuid;
        Main.OleObject.Document.Frames.Item(0).document.forms.item(0).elements.item(1).click();
        Main.Show;
      end;
    until Main.Showing = true;
  end;


Das Hide und Show hab ich drin, damit der User nicht sieht, dass da ein Button gedrückt wird.

Ja, und wenn ich jetzt zu früh auf den Button klicke, kommt manchmal eine Exception.

Also sieht du einen Fehler in meinem Code,
oder weisst du ne andere Möglichkeit, wie ich eine Variable an eine PHP-Seite in einem Frame übergeben kann?

_________________
Wer das Konzept der Unendlichkeit verstehen will, muss nur das Ausmaß menschlicher Dummheit betrachten. (Voltaire)
DSeven
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Fr 26.09.03 23:58 
Hallo

Wenn ich du währ würde ich weitersuchen und versuchen den Fehler zu finden. Um So mehr Fehler du unterdrückst umso mehr tretten auf bzw. du bekommst nicht die ergebnisse die du brauchst.
maze2k Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 252

WIN 95, WIN NT 4.0, WIN 98, WIN 98SE, WIN 2000, RedHat Linux 7.3, Mandrake Linux 9.2, Knoppix Linux 3.3
D6 Pers
BeitragVerfasst: Sa 27.09.03 00:09 
Naja, dieser Fehler kommt ja nur sehr selten vor (und auch nur, wenn man direkt nach Programmstart auf den Button klickt). Daher glaube ich dass es einfach an diesem Code liegt, den ich gepostet hab.

Was mir eben aber auch aufgefallen ist, ist dass wenn man zu früh auf den Button klickt, man nicht mehr aus der repeat-Schleife kommt.

Kann es sein, dass wenn man das Formular zu früh öffnet, dass dann der Befehl aus dem OnCreate-Event

ausblenden Quelltext
1:
Main.Navigate('blabla.php');					


noch nicht ausgeführt ist ??
(Ich schreibe zwar gleich den code um, damit dieser Fehler umgangen wird, aber interessieren würde es mich trotzdem, ob der code von onCreate noch nicht ausgeführt sein kann, wenn man zu früh die Form öffnet!)

(Das wird ja immer komplizierter! *g*)

_________________
Wer das Konzept der Unendlichkeit verstehen will, muss nur das Ausmaß menschlicher Dummheit betrachten. (Voltaire)
maze2k Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 252

WIN 95, WIN NT 4.0, WIN 98, WIN 98SE, WIN 2000, RedHat Linux 7.3, Mandrake Linux 9.2, Knoppix Linux 3.3
D6 Pers
BeitragVerfasst: Sa 27.09.03 00:30 
Und gerade seh ich, dass diese repeat-Schleife eigentlich völlig sinnlos ist. Was hab ich mir dabei nur wieder gedacht? *lol*

Trotzdem will ich es immer noch wissen, dass mit dem Form-Create *g*

_________________
Wer das Konzept der Unendlichkeit verstehen will, muss nur das Ausmaß menschlicher Dummheit betrachten. (Voltaire)