Einzelnen Beitrag anzeigen

Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#5
  Alt 2. Sep 2002, 14:29
Private-Deklaration haben mit dem Erzeugen und Freigeben von Objekten nichts zu tun! Wenn du etwas als private deklarierst, können andere Objekte nicht darauf zugreifen, nur das dieses Objekt beinhaltende Objekt hat Zugriff (siehe Aggregation).

Zunächst: Die automatische Freigabe durch den Owner ist nur bei Komponenten( genauer gesagt: Nachfahren der Klasse TComponent) möglich.

Ob du nun deine Komponente im private, public, oder published-Bereich deklarierst, ist für die Freigabe völlig unerheblich. Du könntest theoretisch sogar Komponenten, die in anderen Formularen deklariert sind, automatisch freigeben lassen:
Code:
form2.meineKomponente:=TMeineKomponente.Create(form1);
Damit würde, sobald Form1 freigegeben wird, automatisch auch MeineKomponente freigegeben, obwohl diese in einem völlig anderen Teil deines Programmes deklariert ist.

Instanzen der Klasse TIniFile stammen nicht von TComponent ab, mit ihnen ist so etwas also nicht möglich, sie müssen manuell freigegeben werden.

Cu,
Udontknow
  Mit Zitat antworten Zitat