-
Méthode Free d'un objet
Je me pose une question, quand on créé un objet qui lui même contient un ensemble d'objets créés dans le constructeur.
Quand on appelle la méthode Free de cet objet, Delphi se charge-t-il tout seul de la destruction des objets inclus ou doit-on surcharger la méthode Free et supprimer les autres objets dans la surchage puis appeller inherited ?
Merci pour votre réponse.
-
tu dois surcharger la methode destroy, de la meme facon que tu surcharges la methode create
-
Cela dépend...
Lors tu crées ton objet comme cela
Code:
obj := TMonObjet.Create(AOwner:TComponent)
ton objet sera détruit automatiquement lorsque le composant précisé en AOwner appelera sa méthode Destroy.
Sinon tu dois le détruire toi même lors du Destroy du composant AOwner.
Par contre, je pense que release est plus adapté que free (mais je ne suis pas sur)
-
J'ai recherché dans la doc de Delphi et apparement release correspond aux TForm et non aux TComponent.
Je pense que je vais me charger de la destruction des objets contenus, cela serra plus sûr, car je ne sais pas forcément qui serra l'Owner encore.