Guten Abend,
so komisch sich der Thread-Titel anhört, so komisch ist mein Problem auch. Ich habe eine Anwendung mit mehreren Klassen, mehreren Dialogen etc. Nun ist es so, dass ich mir einen ObjektManager erstellt habe, von dem aus alle Objekte erstellt werden, also ein Baum mit einer Instanz des ObjektManager als Wurzel. Wende ich dann am Schluss, d.h. beim OnClose des Programms FreeAndNil(); auf diesen an, wird jedes Objekt brav vernichtet.
Seit heute ist es aber so, dass auf einmal eine
Exception (Zugriffsverletzung an ...) auftritt, wenn ich das Programm schließe. Natürlich arbeite ich immer weiter an dem Objekt. Allerdings habe ich nur einige kleine Details daran geändert. Wenn die
Exception auftritt und ich dann auf Anhalten klicke springt die
IDE nicht zu dem Punkt, an dem die
Exception auftritt. Ich habe das Problem soweit eingrenzen können, dass ich weiß, dass beim FreeAndNil(); auf eine Form bzw. bei dessen Ausführung, die ich über den ObjektManager erzeugt habe der Fehler auftritt. Ich habe mir zwei Haltepunkte gesetzt. Einen genau auf den Befehl, der nach Ausführung die
Exception wirft und einen danach. Drücke ich F9 erscheint die
Exception und ich weiß nicht wieso. Vielleicht kennt das Problem jemand?
Des Weiteren habe ich probiert dieses FreeAndNil() heraus zu lassen. Sogar mit Erfolg, nur finde ich es total unzufriedenstellend, da es einfach unsauber ist. Unsauber und unschön... Windows holt sich doch zwar den Speicher zu zurück (oder irre ich hier?), aber ich will alles selbst kontrollieren, auch wenn es nur beim Schließen auftritt, an einer Stelle wo es mir egal sein könnte.
Mit freundlichen Grüßen
der Hai
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)