C'est tellement inexplicable.
taper
IInterface1 = interface
fin;
Tclass1 = classe (TinterfacedObject, iInterface1)
Destructor détruire;
fin;
Tform1 = classe (tform)
Button1: Tbutton;
Procédure FormCreate (expéditeur: tobject);
Procédure Button1Click (expéditeur: tobject);
Privé
{Déclarations privées}
Classe1: iInterface1; // Notez qu'il s'agit d'interface iInterface1, pas de classe TClass1, TClass1 n'a pas ce problème
publique
{Déclarations publiques}
fin;
Mise en œuvre
{$ R * .dfm}
{TClass1}
destructor tclass1.destroy;
Commencer
ShowMessage («Détroyer!»);
hérité;
fin;
Procédure TForm1.FormCreate (Sender: Tobject);
Commencer
Class1: = TClass1.Create;
fin;
Procédure tform1.button1Click (expéditeur: tobject);
Commencer
Classe1: = NIL;
// Si Class1 est Class TClass1, il ne sautera pas pour détruire.
//Pourquoi? Pourquoi?
fin;