У меня есть TObjectList<TUSBDevice>
, где TUSBDevice
- это класс, который я сделал. Я попытался вызвать Delete
с индексом, переданным в качестве параметра, но он просто делает то, что делает TList.Delete()
: удаляет указатель из списка, но не освобождает сам объект.
Точка останова, которую я установил на TUSBDevice.Destroy()
, не прерывается при вызове Delete()
. У меня также были часы на TObjectList
, и я вижу, как элемент удаляется из списка, но содержимое по адресу памяти объекта не освобождается.
Деструктор TUSBDevice
:
destructor TUSBDevice.Destroy();
begin
removeDatabaseEntry();
filteredFolders.Free();
fileQueue.Free();
end;