dynamisch erzeugte Objekte wieder freigeben
-
Hallo Leute,
Wenn ich mehrere Komponenten dynamisch erstellt habe muss ich diese ja wieder freigeben. Wenn ich nun beispielsweise ein Panel und ein Edit- Feld habe und das Panel der Parent für das Edit- Feld ist, muss ich dann beide Kompnenten wieder freigeben oder genügt es das Panel mit delete freizugeben?
Vielen Dank für eure Hilfe,
Euer Entertainer
-
Schau mal hier: http://www.c-plusplus.net/forum/viewtopic.php?t=59862
das ist ein gutes beispiel dafür.
Free und dann delete
-
Entertainer schrieb:
Wenn ich mehrere Komponenten dynamisch erstellt habe muss ich diese ja wieder freigeben.
Kommt drauf an. Wenn die (VCL-)Komponente einen Owner hat (wird als Parameter des Konstruktors übergeben), sorgt dieser für die Vernichtung des Objektes.
Siehe auch die BCB-Hilfe zum Thema "TComponent::Owner"
-
Tillmann David schrieb:
Schau mal hier: http://www.c-plusplus.net/forum/viewtopic.php?t=59862
das ist ein gutes beispiel dafür.
Eine etwas vermessene Aussage... Eher ein schlechtes Beispiel, da der Kern des Codes was ganz anderes ist.
dschensky hat da schon eher recht. Grundsätzlich kümmert sich der Parent um das Freigeben seiner Schützlinge.. steht auch so in der Hilfe...
-junix
-
junix schrieb:
Grundsätzlich kümmert sich der Parent um das Freigeben seiner Schützlinge
... der Owner ...
Der zwar mit dem Parent identisch sein kann, es aber keineswegs sein muss.
-
Oops... kleiner verschreiber am Rande... war - zumindest für mich - noch etwas früh am morgen... ich bitte um Entschuldigung.
-junix