Сделал ассоциированный массив на дженериках, используя TMap из пакета fcl-stl:
- Код: Выделить всё
- TMapElement = class
 Key: string;
 KeyType: string;
 Value: string;
 constructor Create(_key, _keytype, _value: string);
 end;
 less = specialize TLess<string>;
 TTagsMap = specialize TMap<string, TMapElement, less>;
В другом классе TJHTMLParse есть поле
- Код: Выделить всё
- fValues: TTagsMap;
В деструкторе главного объекта вызываю метод освобождения памяти ассоциированного массива:
- Код: Выделить всё
- destructor TJHTMLParse.Destroy;
 begin
 fValues.Destroy;
 if Assigned(HTMLFile) then
 HTMLFile.Free;
 inherited;
 end;
Модуль работает как надо, но при закрытии heaptrace показывает, что объекты не освободили память. Как правильно поступать с объектами-значениями массива, и могут ли они вообще быть элементами массива TMap?




