Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
Delphi 2009 Professional
|
Re: Komponenten und deren Freigabe
18. Aug 2003, 12:39
Hallo Chewie´,
das ist nicht ganz richtig. Die Komponenten werden freigegeben, wenn der Besitzer freigegeben wird. Der Besitzer muss nicht unbedingt der Parent sein.
Wenn ein TEdit auf einem Panel liegt und das Panel auf einem Formular dann ist das Panel der Parent und das Formular der Besitzer.
Bei zur Designzeit erzeugten Komponenten ist in der Regel der Formular der Besitzer. Wird die Komponente zur Laufzeit erzeugt entscheidet der Paramter des constructors über den Besitzer.
procedure TForm1.CreateEdit;
begin
Edit:=TEdit.Create(Self); // Formular ist der Besitzer, Komponente wird freigeben wenn das Formular zerstört wird.
end;
procedure TForm1.CreateEdit;
begin
Edit:=TEdit.Create(Nil); Komponente hat keinen Besizter, Komponente wird nicht freigeben wenn das Formular zerstört wird.
end;
|