Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Objekte freigeben (https://www.delphipraxis.net/126390-objekte-freigeben.html)

khh 23. Dez 2008 13:48


Objekte freigeben
 
hallo zusammen,

ich habe mir angewöhnt in eigenen Klassen die Objekte die ich im construktor erzeuge , im destruktor wieder freizugeben.:-)

wie verhält es sich nun bei den Forms die über den Objektinspetor erstellt werden?

ich habe ein form in dessen
procedure MyForm.FormCreate(Sender: TObject)
einige andere objekte erzeugt werden.


macht es Sinn diese in der myForm.FormDestroy(Sender: TObject) wieder freizugeben,
oder kann man das vernachlässigen, da sie ja eh bei der Zerstörung des Form mit vernichtet werden?

danke für eure Meinungen


Gruss KH

Neutral General 23. Dez 2008 13:50

Re: Objekte freigeben
 
Hi,

Also ich mache es immer. Ich finds einfach schöner.

Luckie 23. Dez 2008 13:52

Re: Objekte freigeben
 
Zitat:

Zitat von khh
oder kann man das vernachlässigen, da sie ja eh bei der Zerstörung des Form mit vernichtet werden?

Moment, das ist nicht zwingend der Fall, sondern nur dann, wenn das Formular auch der Owner des Objektes ist. Erstellst du zum Beispiel eine StringListe, musst du sie auch wieder freigeben, wenn das Formular nicht der Owner ist.

khh 23. Dez 2008 13:53

Re: Objekte freigeben
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von khh
oder kann man das vernachlässigen, da sie ja eh bei der Zerstörung des Form mit vernichtet werden?

Moment, das ist nicht zwingend der Fall, sondern nur dann, wenn das Formular auch der Owner des Objektes ist. Erstellst du zum Beispiel eine StringListe, musst du sie auch wieder freigeben, wenn das Formular nicht der Owner ist.

heisst alle objekte die ich mit nil erstelle muss ich auch im destroy wieder freigeben?

DeddyH 23. Dez 2008 13:55

Re: Objekte freigeben
 
Wer soll das denn sonst tun? :zwinker:

Matze 23. Dez 2008 13:55

Re: Objekte freigeben
 
Ob es erst im OnDestroy sein muss, weiß ich nicht. Gib es sobald wie möglich frei, also dann, wenn du nicht mehr darauf zugreifen musst.

khh 23. Dez 2008 13:59

Re: Objekte freigeben
 
Zitat:

Zitat von Matze
Ob es erst im OnDestroy sein muss, weiß ich nicht. Gib es sobald wie möglich frei, also dann, wenn du nicht mehr darauf zugreifen musst.


ok, ich danke euch

EDIT:
und warum bekomme ich bei einem mit nil, also myobject.create(NIL) im oncreate erzeugten objekt
bei der freigabe im destroy
myobjekt.free

eine exception?

das heisst doch dass das object schon nicht mehr existiert, oder ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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