Показать сообщение отдельно
  #5  
Старый 04.03.2015, 09:58
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

и деструктор не должен называться free !
free -это невиртуальная функция класса TObject, которая сама вызывает Destroy. поэтому нужно делать так

Код:
type
  TEventList = class(TObject)
....
   destructor Destroy; virtual;
  end;
и
Код:
destructor TEventList.Destroy;
begin
  SetLength(items,0);
  Inherited Destroy;
end;
И вот это
Код:
  SetLength(items,0);
в деструкторе делать необязательно.
Если в деструкторе больше кода не будет, то его можно совсем исключить.
Ответить с цитированием