IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Quelle est la différence entre un "Parent" et un "Owner" ?
auteur : Geronimo
Confusion facile. En effet, Parent et Owner sont deux concepts différents. Le Parent est quelque chose de visuel : le parent d'un composant est celui qui contient ce composant. Le parent d'un TEdit placé directement sur la fiche est la fiche (Form1). Le Owner d'un composant est le composant qui détruit celui-ci. (Mais le Owner peut être le Parent). Quand vous créez dynamiquement un composant, vous devez passer le Owner en argument du constructeur :
         TLabel *Label = new TLabel(Form1);
         //...      
         
Cela signifie que quand Form1 sera détruite, Label le sera également. Donc dans ce cas, vous ne devez pas faire appel à delete car il y aurait de delete sur Label ce qui est fortement déconseillé. Si vous souhaitez garder la main, il suffit de passer 0 (NULL) en argument du constructeur. Dans ce cas, le contrôle n'ayant pas de Owner ne sera pas détruit, donc vous pouvez le détruire quand vous le souhaitez avec delete.