VKB написал(а):
... Прошу помощи у тех, кто вникал в этот вопрос.
...Parazit указывал, что с освобождением грида и контейнера у него были сложности. ...
Повторюсь, вникал, хотя и давно. Потому и про Borland Pascal спросил, что почуял "родственную душу".

Вот, что я понял:
Команда Free <object> чистит только переменную, т.е. ссылку на объект, но не сам объект. Вызов деструктора позволяет чистить данные объекта, но сам объект останется живым. Реально объект в памяти будет убит ТОЛЬКО уборщиком мусора, когда ему "будет угодно".

Т.о. у нас нет возможности влиять на этот процесс. И даже если выколупать какие то возможности, то смысла это не имеет, т.к. это общий стиль SAP - а, как известно, в чужой монастырь со своим уставом не ходят!
p.s.
В свое время, перейдя с паскаля на дельфи, я тоже переживал, что больше нет возможности строго контролировать объем динамической памяти, т.к. "куча" стала общей и в многозадачной среде это стало просто бессмысленным. Я убежден, что ни один программист не способен писать без ошибок (если увидите такого - пристрелите его, потому что он врет или просто лох

) и без четкого контроля памяти в ней обязательно заведутся "мертвяки". Эту проблему и решает уборщик мусора и, я полагаю, более эффективно!
К тому же в SAP-е есть некоторые фичи, построенные на том, что память не освобождается сразу после исполнения программы. Например, после вызова из одной программы другой, вы имеете доступ к глобальной памяти 2-й программы из 1-й. Хотя, казалось бы, логично после выхода из 2-й освободить её память. Особенно это касается функциональных модулей и их групп, когда один модуль задает глобальные переменные, а другой их использует - САПа насквозь прошита таким кодом. В принципе такой подход - бардак, что создает определенные трудности в программировании, но никто, кроме SAP, это не исправит. Что, кстати, SAP и делает, постепенно переходя на ООП.