![]() |
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 |
Re: Panel freigeben --> dann image darauf auch?
Komt darauf an, ob der Panel auch der Owner des Images ist.
|
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:
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.
image1:=TImage.create(Panel1);
|
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: ![]() Gruß Hawkeye |
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.
|
Re: Panel freigeben --> dann image darauf auch?
@Hawkeye219: Man lernt nie aus :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 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