AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klasse in Klasse Free'n ?

Ein Thema von Pseudemys Nelsoni · begonnen am 20. Nov 2004 · letzter Beitrag vom 20. Nov 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Klasse in Klasse Free'n ?

  Alt 20. Nov 2004, 11:12
moin,

wenn ich ein array von einer klasse innerhalb einer anderen klasse habe und die äussere klasse mit "Free" lösche, sind dann die daten des arrays der anderen klasse auch weg oder muss ich die vor dem free der hauptklasse erst löschen?
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Klasse in Klasse Free'n ?

  Alt 20. Nov 2004, 11:21
Wenn ich dich richtig verstehe, hast du in deinerHauptklasse ein Array definiert. Löscht du jetzt diese Klasse, wie bitte schön willst du dann also noch auf dein Array zugreifen können. Folglich sind die Daten futsch. Ob jetzt aber auch der Speicher des Araay freigegeben wird, ist dabei eine andere Frage.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Klasse in Klasse Free'n ?

  Alt 20. Nov 2004, 11:30
hallo jelly, natürlich will ich nichtmehr auf die daten zugreifen, sonst würd ich sie ja kaum löschen wollen *g*, jo das mit dem speicher stimmt schon, ich möchte wissen ob es automatisch aus dem speicher genommen wird oder ich vor dem Free der hauptklasse erst das array der klasse durchlaufen muss und die daten auch noch "befreien" muss. bild ich siehts so aus:

Delphi-Quellcode:
TMyClass = class
public
  anotherclasses: array of TAnotherClass
end;

so, wenn "anotherclasses" nun einige instanzen besitzt, muss ich sie dann löschen bevor ich meine intanz von "TMyClass" lösche?
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Klasse in Klasse Free'n ?

  Alt 20. Nov 2004, 11:36
Ums sauber zu lösen, würde ich im Destructor von TMyClass dein Array freigeben, sprich jedes einzelne Element frei geben mittels anotherclasses[i].free, und anschliessend noch ein Setlength (anotherclasses,0) vornehmen, da es ja ein dynamisches Array ist.

Prinzipiell ist es aber so, daß Delphi dies eigentlich automatisch machen soll, ich bin aber mehr der Freund der manuellen Freigabe. Ist einfach sauberer.
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Klasse in Klasse Free'n ?

  Alt 20. Nov 2004, 11:36
Zitat von Pseudemys Nelsoni:
moin,

wenn ich ein array von einer klasse innerhalb einer anderen klasse habe und die äussere klasse mit "Free" lösche, sind dann die daten des arrays der anderen klasse auch weg oder muss ich die vor dem free der hauptklasse erst löschen?
Du musst dich schon selbst darum kümmern, dass die objekte in dem array freigegeben werden. Das array selbst wird automatisch freigegeben. Ich würd an deiner stelle aber TObjectList verwenden, dann musst du dich nicht mehr kümmern, nur die liste freeen.
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Klasse in Klasse Free'n ?

  Alt 20. Nov 2004, 11:38
Zitat von Pseudemys Nelsoni:
ich möchte wissen ob es automatisch aus dem speicher genommen wird oder ich vor dem Free der hauptklasse erst das array der klasse durchlaufen muss und die daten auch noch "befreien" muss
Ja, darum musst Du dich selbst kümmern.

Zitat von Pseudemys Nelsoni:
so, wenn "anotherclasses" nun einige instanzen besitzt, muss ich sie dann löschen bevor ich meine intanz von "TMyClass" lösche?
Ja, das würde ich dir empfehlen.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: Klasse in Klasse Free'n ?

  Alt 20. Nov 2004, 11:39
danke für die antworten
Mario
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr.
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