Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Exception EAccessViolation


ThomasQ - Fr 20.11.09 23:56
Titel: Exception EAccessViolation
Hallo!

Leider weiß ich nicht so wirklich, worauf der Fehler beruht. Nur mit einer Exception kann ich den o. gen. Fehler abfangen. Ist das auch irgendwie anders möglich?

Der Fehler wird in folgender Zeile hervorgerufen:

Delphi-Quelltext
1:
if A_Button.Parent = panel_X then                    

Garniert wird die Meldung mit: Zugriffsverletzung bei Adresse ...usw.

Was soll da an der Syntax falsch sein???

Ach so: Es tritt kein Fehler auf, wenn ich unter Tools | Debugger-Optionen |Sprach-Exceptions das Häkchen bei 'Bei Delphi-Exceptions stoppen' entferne. Ich arbeite mit Delphi 6.


Moderiert von user profile iconNarses: Topic aus Algorithmen, Optimierung und Assembler verschoben am Mo 23.11.2009 um 09:37
Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


platzwart - Sa 21.11.09 00:10

Es geht nicht um die Syntax, sondern um ein Objekt auf das du zufgreifst, das garnicht existiert. Ich würde mal auf A_Button tippen...


jaenicke - Sa 21.11.09 01:30

user profile iconThomasQ hat folgendes geschrieben Zum zitierten Posting springen:
Ach so: Es tritt kein Fehler auf, wenn ich unter Tools | Debugger-Optionen |Sprach-Exceptions das Häkchen bei 'Bei Delphi-Exceptions stoppen' entferne. Ich arbeite mit Delphi 6.
Das heißt, dass der Fehler trotzdem auftritt, du den aber mit try..except einfach ignorierst. Schlechte Idee, denn in diesem Fall solltest du lieber die Ursache (die wurde ja vermutlich bereits genannt) beheben...

Wenn eine Exception auftritt, wird diese beim Debuggen aus Delphi heraus angezeigt, auch wenn sie mit try..except abgefangen wird. Denn da geht es ja gerade ums Debuggen. Das schaltest du mit der Option um. Startest du das Programm außerhalb von Delphi und dem Debugger, dann wird die Exception auch nicht angezeigt.