Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi einfache Sache (Registry) aber ich kriegs net hin :( (https://www.delphipraxis.net/30657-einfache-sache-registry-aber-ich-kriegs-net-hin.html)

Luckie 27. Sep 2004 18:15

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Ist es nicht. Hier vielleicht, aber nicht generell. Ein Delphi-Referenz durchsuchenFree entfernt nur das Objekt aus dem Speicher, der Zeiger beinhaltet aber immer noch eine Adresse. Wenn ich nach dem Free mit Delphi-Referenz durchsuchenAssigned prüfe, wird es immer true liefern. Ein Zugriff wird dann aber scheitern, da das Objekt ja nicht mehr im Speicher existiert.

Also auch wenn es unnötig ist, sollte man den Zeiger immer auf nil setzten, damit man, es wenn es nötig ist, es nicht vergisst. Denn such mal den Fehler, wenn Assigned True liefert, aber du eine AccessViolation um die Ohren gehauen bekommst, wenn du auf das vermeindlich noch existente Objekt zugreifst. ;)

Ab D6 gibt es Delphi-Referenz durchsuchenFreeAndNil, was das schon für dich erledigt.

alcaeus 27. Sep 2004 18:46

Re: einfache Sache (Registry) aber ich kriegs net hin :(
 
Zitat:

Zitat von Pseudemys Nelsoni
um nicht zu sagen unnütz 8)

Und um endlich einen Punkt unter die Sache zu setzen: Nicht unnütz, nur an der falschen Stelle. Weist du dem Objektpointer nil zu, bevor du es freigibst, so wirst du das Objekt nicht mehr finden (im Speicher), obwohl es noch dort ist. Folgedessen wird es auch nicht freigegeben. Also: zuerst Free, dann nil (deshalb ja auch FreeAndNil, und nicht NilAndFree :zwinker:)

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.
Seite 2 von 2     12   

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