Quelle est la bonne façon de créer dynamiquement/version runtime formes?

J'essaie toujours de créer mes Applications avec l'utilisation de la mémoire dans l'esprit, si vous n'avez pas besoin alors de ne pas créer c'est la façon dont je regarde.

De toute façon, prendre ce qui suit comme exemple:

Form2:= TForm2.Create(nil);
try
  Form2.ShowModal;
finally
  Form2.FreeOnRelease;
end;

En fait, je pense Form2.Détruire est probablement la meilleure option, ce qui m'amène à ma question..

Quelle est la différence entre un appel:

Form2.Destroy;
Form2.Free;
Form2.FreeOnRelease;

Ils font tous le même travail ou un travail similaire, à moins que quelque chose m'échappe.

Et aussi lorsque les ci-dessus? Évidemment, lors de la libération d'un Objet je le comprends, mais dans certaines situations, est Destroy mieux que Free par exemple?

lire sur TObject.Free, TObject.Destroy
appel Gratuit vérifie si l'objet n'est pas Nul, et ensuite appeler Détruire en conséquence. Il est sûr. l'appel de Détruire ne vérifie pas si l'objet est nulle, de sorte qu'il pourrait déclencher VA.

OriginalL'auteur | 2011-06-10