![]() |
Frage zur Reg-Unit
Ich habe eine kurze Frage.
Nachdem ich die Reg-Unit deklariert und eine Instanz davon initialisiert habe (reg:=TRegistry.Create), und dann OpenKey aufgerufen habe, deinitialisiere ich das ganze dann mit FreeAndNil. Muss ich VOR FreeAndNil reg.CloseKey ausführen oder is das egal? |
Re: Frage zur Reg-Unit
Moin Stefan,
kurze Frage Zitat:
Ja. Längere Erklärung: ;-) Durch das FreeAndNil werden nur die (Speicher)Resourcen freigegeben, die das Objekt belegt, durch das CloseKey auch das Handle, das durch OpenKey belegt wird. Grundsätzlich: Jede Resource, die Du anforderst/belegst, musst Du auch wieder freigeben. BTW: try/finally (Resourcenschutzblock) nicht vergessen, soweit das Belegen und Freigeben innerhalb einer Prozedur/Funktion/Methode erfolgt. |
Re: Frage zur Reg-Unit
Kann das FreeAndNil auch eine Exception produzieren, also muss ich das mit try\except kapseln?
|
Re: Frage zur Reg-Unit
Moin Stefan,
Zitat:
Zitat:
|
Re: Frage zur Reg-Unit
Zitat:
Begründung. Auch FreeAndNil ruft den Destructor des Objektes auf. Im Destructor von TRegistry wird CloseKey automatisch aufgerufen. :warn: |
Re: Frage zur Reg-Unit
Zitat:
|
Re: Frage zur Reg-Unit
Zitat:
Delphi-Quellcode:
Also wird CloseKey wohl im Destruktor aufgerufen! (Was man nich alles so erfährt?! :shock: )
destructor TRegistry.Destroy;
begin CloseKey; inherited; end; mfG mirage228 |
Re: Frage zur Reg-Unit
Zur Zeit leider nicht, vielleicht denke ich heute Abend dran. :(
Auf jeden Fall ist ja bei den Prof und Enterprise Editions von Delphi der Quellcode der VCL dabei. Unter anderen auch die der Registry unit. Und da ist meines Wissens nach in TRegistry.Destroy der Aufruf von CloseKey drin. Mal ehrlich, wäre wirklich schlimm wenn nicht. [edit]Gut, dann hat sich das ja jetzt erledigt ;)[/edit] |
Re: Frage zur Reg-Unit
Zitat:
Delphi-Quellcode:
if OpenKey(...) then
begin ...; ...; CloseKey; end; |
Re: Frage zur Reg-Unit
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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 by Thomas Breitkreuz