Est-ce que Delphi libère automatiquement à la destruction de l'objet X tous les objets dont l'objet X est parent ?
Est-ce que Delphi libère automatiquement à la destruction de l'objet X tous les objets dont l'objet X est parent ?
salut
cela depend si cela on été referencé sur l'objet parent .
c'est la fameuse histoire du owner
en fait, tout les composants (surtout graphique) gerent une liste
contenant tous les composant creer avec un owner
exemple :
TmonCompoment.create(self) ;
le fait de mettre self permet au composant de s'autoreferencer
auprès de son proprietaire.
si par contre tu fait :
TmonCompoment.create(nil) ;
celui-ci n'étant attaché a rien, personne ne le detruira automatiquement
a savoir que ceci n'est valable qu'a partir des Tcompoment avant
la notion de proprietaire n'existe pas.
pour te rendre compte de cela il te suffit de parcourir les sources de la vcl. Le tcompoment étant l'ancetre qui porte cette notion je te conseil de le regarder.
autres limitation mais non des moindre si l'un des composants que tu utilise à overrider la methode destroy, sans reheriter de sa methode ancetre, celui-ci cassera le mecanisme de liberation automatique et de ce fait sera quasi innexploitable
cette derniere chose est en theorie pas à faire mais
je l'ai deja vu faire donc ...
@+ Phil
@+ Phil
Merci beaucoup, c'était clair comme de l'eau de roche !
Partager