![]() |
freigeben?
hi,
wenn ich eine komponente im create zur laufzeit erstelle und als owner Form1 übergebe, muss ich sie dann am ende OnClose auch wieder freigeben? soweit ich weiss müsste form1 das als owner selbst tun oder? |
Re: freigeben?
Ja, die Freigabe übernimmt der Owner selbst.
Gruß, teebee |
Re: freigeben?
gut, danke.
wäre es auch so wenn es der Parent wäre? das gleiche wie Owner? |
Re: freigeben?
Wenn ein WinControl zersört wird, gibt es alle Child-Controls vorher frei, d.h. alle Komponenten, die als Parent dieses WinControl haben. Im Prinzip brauchst Du also entweder einen Owner oder ein Parent. (Auch wenn die OH hier etwas anderes sagt... siehe: TWinControl.Destroy).
Aber alle Objekte _ohne_ Owner oder Parent müssen von Dir selber freigegeben werden. Gruß, teebee |
Re: freigeben?
In meinem Kopf schwirrt etwas rum von wegen, dass nur "Owner" für die Freigabe verantwortlich ist. Parent hingegen hat damit nichts zu tun, sondern gibt nur an, wo sich visuelle Kompos hinzeichnen sollen. Es kann aber auch sein, dass ich das genau vertausche...
Auf jeden Fall sind nicht beide für die Freigabe von Bedeutung. |
Re: freigeben?
@dizzy
Was bei dir im Kopf rumschwirrt ist richtig. Der Owner kümmert sich um den Speicher bzw die Freigabe und der Parent sagt, wohins gemalt werden soll. |
Re: freigeben?
Zitat:
Gruß, teebee |
Re: freigeben?
Zitat:
|
Re: freigeben?
Zitat:
Natürlich sind wir uns einig, dass prinzipiell der Owner für die Freigabe einer Komponente zuständig ist. Wenn die Komponente allerdings ein Control ist und ein Parent hat, gibt der Parent in seinem Destroy diese Komponente frei: Siehe TWinControl.Destroy in den VCL-Quellen. Das steht leider nicht so in der OH, ist aber trotzdem so... Gruß, teebee |
Re: freigeben?
:shock: Datt isn Ding! Eigentlich eine Fehlerquelle par excellance, wenn man dann versucht da noch selber freizugeben...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz