![]() |
AV innerhalb des if-Statements lässt sich nicht abfangen
Hallo!
Ich habe eine etwas längere if-Statement bestehend aus mehreren Dutzend ANDs und ORs, die allesamt auf ein bestimmtes Object zugreifen. Wird dieses bestimmtes Object freigegeben, während IF gerade diese ANDs und ORs durläuft, erscheinen mehrere AV nacheinander, die sich mit TRY..EXECPT..END nicht abfangen lassen. Kann ich was dagegen tun? Danke! |
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
Ja. Gib dss Objekt nicht frei, wenn noch darauf zugegriffen wird oder noch werden soll. Oder sorg dafür das der if Block verlassen wird, wenn das Objekt freigegeben wird.
|
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
Zitat:
|
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
Zitat:
|
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
Zitat:
Und im übrigen stimme ich Glados zu: Mehrere Dutzend Einzelbedingungen - also mehr als 24 Stück - in einem einzelnen If-Statement? Schon ab drei oder vier wird's (total) unübersichtlich. Grüße Dalai |
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
wir wirklich während der Prüfung innerhalb einer If Abfrage gelöscht?
Wenn nicht, vorher mal mit
Delphi-Quellcode:
prüfen ob das noch vorhanden ist.
if Assigned(meinObjekt) then
|
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
Das ist aber in diesem Fall nur eine Krücke und keine Lösung für das eigentliche Problem. Ich meine, er zieht sich ja selbst den Teppich unter den Füßen weg. Und wenn ich es selbst mache, muss ich danach nicht noch mal gucken, ob der Teppich noch da ist. :cyclops:
|
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
Zitat:
Und selbst wenn es so wäre, irgendwie müßte ja theoretisch das Fehlen eines Wertes/Objektes mit einkalkuliert sein. Gruß K-H |
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
Zitat:
|
AW: AV innerhalb des if-Statements lässt sich nicht abfangen
Mit Verlaub, das hört sich seltsam an. Code?
Einfache Sache, wird aber auch nicht wirklich zutreffend sein, wäre sofern die Referenz auf nil gesetzt, dass ist die Kurzschlussauswertung abgedreht ist. {$B+} or {$B-} {$BOOLEVAL ON} or {$BOOLEVAL OFF}
Delphi-Quellcode:
funktioniert dann auch nicht mehr, auch wenn der poidl NIL ist.
If Assigned(poidl) AND ((poidl.Alter < 12) OR (poidl.IsBlunzenFett)) then ....
Vermutlich kommt aber der Zeiger mit einer gesetzten ungültigen Adresse daher oder Methoden greifen auf uninitalisierte Objekte zu usw... Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz