![]() |
Unterkomponenten manuell entfernen?
Wenn eine Komponente über den Formulardesigner in eine Form eingefügt wird, wird diese beim Free des Formulars automatisch mitgelöscht und der Speicher freigegeben. Das müsste aber doch eigentlich für alle Unterkomponenten des formulars gelten, auch wenn die mittels xxx.create(self) im Programm zur Laufzeit generiert werden (wobei self das Formular ist) - oder ist da irgend ein Unterschied?
|
Re: Unterkomponenten manuell entfernen?
Alle Komponenten, die als Owner deine Form haben, werden von der Form freigegeben. Da die meisten Komponenten im Create den Owner erwarten und wenn du dort dann die Form übergibst (self) werden diese Komponenten dann auch von der Form freigegeben.
|
Re: Unterkomponenten manuell entfernen?
So etwas bemerkt man aber, wenn man die Projektdatei editiert (in der Projektverwaltung Rechtsklick auf das Projekt - Quelltext anzeigen) und ReportMemoryLeaksOnShutdown auf true stellt.
Delphi-Quellcode:
{$IFDEF DEBUG}
ReportMemoryLeaksOnShutdown := true; {$ENDIF} Application.Initialize; ... |
Re: Unterkomponenten manuell entfernen?
Oh, danke, das kannte ich auch noch nicht, und habe mich schon ein paar mal gefragt, wie ich überprüfen kann, ob meine Anwendungen wirklich alles brav wieder freigeben. Wobei natürlich immer noch das Problem besteht, dass man beim blossen Testen nicht auf alle Sonderfälle kommt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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