Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Panel freigeben --> dann image darauf auch? (https://www.delphipraxis.net/97459-panel-freigeben-dann-image-darauf-auch.html)

Christian18 10. Aug 2007 18:22


Panel freigeben --> dann image darauf auch?
 
Hallo,

stellt Euch vor ich habe ein Panel. Auf diesem Panel ist ein Image. Wenn ich das Panel freigebe, ist dann auch das Image freigegeben.

LG Chris

mkinzler 10. Aug 2007 18:40

Re: Panel freigeben --> dann image darauf auch?
 
Komt darauf an, ob der Panel auch der Owner des Images ist.

Apollonius 10. Aug 2007 18:40

Re: Panel freigeben --> dann image darauf auch?
 
Jede Komponenete hat einen Owner, eine andere Komponente, die beim Konstruktor angegeben wird. Wenn eine Komponente freigegeben wird, gibt sie auch alle Komponenten frei, deren Owner sie ist. Wenn du also dein Image dynamisch erzeugst mit
Delphi-Quellcode:
image1:=TImage.create(Panel1);
ist der Fall klar: Das Image wird mit dem Panel freigegeben. Du musst einfach mal schauen, ob statisch erzeugte Komponenten vom Formular oder vom Parent geownt werden. Ich tippe ganz stark auf letzteres, also, dass das Image nicht mit dem Panel, sondern erst mit dem Formular freigegeben wird.

Hawkeye219 10. Aug 2007 19:03

Re: Panel freigeben --> dann image darauf auch?
 
Hallo Christian,

auch wenn das Panel nur der Parent, nicht aber der Owner ist, wird es das TImage bei seiner Freigabe mit zerstören. Alle TWinControls geben ihre Controls im Destruktor frei: klick

Gruß Hawkeye

SirThornberry 10. Aug 2007 19:26

Re: Panel freigeben --> dann image darauf auch?
 
Aber sauberer ist es auf jeden Fall das man alles was man selbst anlegt/erstellt/instanziert auch selbst frei gibt. Andernfalls kann es zur Angewohnheit werden das man sich darauf verlässt das etwas frei gegeben wird, und schwupps verwendet man mal eine Stringliste etc. die nicht automatisch frei gegeben wird und man hat ein Speicherleck.

Apollonius 10. Aug 2007 20:10

Re: Panel freigeben --> dann image darauf auch?
 
@Hawkeye219: Man lernt nie aus :)


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