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/)
-   -   Delphi Frames freigeben (https://www.delphipraxis.net/58751-frames-freigeben.html)

backdraft 12. Dez 2005 09:14


Frames freigeben
 
Ich hab ne dumme Frage, bin mir aber der Antwort nicht sicher.

Ich habe ein Pagecontrol in das ich ein Frame lege, so quasi als Editor.

Ich lege das ganze pro Datei mit folgender Funktion an:

vtab := TTabSheet.Create(self);
vframe := TMyFrame.Create(vtab);
vframe.Parent := vtab;

wenn ich jetzt die Seite im PageControl schließen möchte, muss ich dann den Speicher des Frames wieder freigeben?

Danke Oliver

MarcoWarm 12. Dez 2005 09:31

Re: Frames freigeben
 
ja, das musst du machen... ebenso den Speicher des TabSheets

dataspider 12. Dez 2005 09:36

Re: Frames freigeben
 
Hi,
da du im Create des Frames den Tabsheet als Owner übergibst, musst du nur den TabSheet freigeben.
Damit wird der Frame mit freigegeben.
Gruß, Frank

backdraft 12. Dez 2005 10:53

Re: Frames freigeben
 
lol, genau das beides hab ich mir auch gedacht :-) weiss jemand jetzt wirklich eine antwort und eine begründung?

ich denke auch, durch den parent, das er es automatisch freigibt!?!
gibt es ggf eine möglichkeit das zu debuggen? den ide debugger auf TFrame.Destroy zu setzen geht ja nicht...

tigerman33 12. Dez 2005 11:36

Re: Frames freigeben
 
Es wird automatisch freigegeben (aber nicht wegen des Parent, sondern weil du das Tabsheet als Owner übergeben hast im Constructor).

Das mit dem Debugger funktioniert, wenn du eine eigene Klasse ableitest und da einfach den Destruktor überschreibst--dann kann der Debugger da auch reinspringen. Ein OnDestroy-Event hat TFrame ja glaube ich nicht, oder? Wenn doch ginge es damit natürlich noch einfacher. :wink:

MarcoWarm 12. Dez 2005 11:38

Re: Frames freigeben
 
dataspider hat recht... ich hätte wohl erstmal genau lesen sollen, was du da im Owner schreibst. sorry.


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