Это так необъяснимо.
тип
IInterface1 = интерфейс
конец;
Tclass1 = класс (tinterfedobject, iinterface1)
разрушитель разрушает;
конец;
Tform1 = class (tform)
Баттон1: Tbutton;
Процедура FormCreate (отправитель: Tobject);
процедура Button1click (отправитель: tobject);
Частный
{Частные объявления}
Class1: iInterface1; // Обратите внимание, что это интерфейс iInterface1, а не класс TCLASS1, TCLASS1 не имеет этой проблемы
публичный
{Публичные объявления}
конец;
Выполнение
{$ R *.dfm}
{Tclass1}
деструктор tclass1.destroy;
Начинать
ShowMessage ('Dissult!');
унаследован;
конец;
Процедура tform1.formcreate (отправитель: tobject);
Начинать
Class1: = tclass1.create;
конец;
Процедура tform1.button1click (отправитель: tobject);
Начинать
Класс1: = NIL;
// Если Class1 является классом tclass1, он не будет прыгать, чтобы уничтожить.
//Почему? Почему?
конец;