- обобщаем.
- подсчитываем число объектов каждого НАБЛЮДАЕМОГО класса
- Добавляем инварианты.
- временно комментируем освобождение объектов и получаем ошибки.
- добавляем заготовочку.
- выводим статистику о неосвобождённых объектах.
- причёсываем код.
- выводим статистику неосвобождённых объектов.
- выводим только ненулевые значения.
- возвращаем освобождение объекта.
- контроллируем и списки строк тоже.
- заготовочка.
- Изменяем заготовочку.
- заменяем TStringList на TDictionary<Key, Value>.
- чистим код.
- комментируем освобождение объектов и проверяем вывод в лог.
- возвращаем освобождение объектов.
- правим комментарии.
- правим комментарий.