Beantwortung der Originalfrage: ja, die müssen freigegeben werden.
Wärst du auf neueren Delphi Versionen könntest du ReportMemoryLeaksOnShutdown := true; als erste Zeile der
dpr setzen und würdest Memoryleaks dann beim Programmende angezeigt bekommen.
Und TDictionary aus Generics.Collections wäre auch sicher eine einfache und brauchbare Lösung für deine Problemstellung.
Es fällt mir in letzter Zeit auf, dass einige Mitforisten nur noch das Ursprungsposting lesen und gar nicht mehr die schon gegebenen Antworten (auch die des Threaderstellers), in denen schon alles gesagt wurde.
Was ist das? Faulheit? Dummheit? Boshaftigkeit? Oder ein "Ich-will-auch-irgendwas-schreiben"?
Nein. Ich hab' einfach vor lauter Beiträge Lesen überlesen, dass der gute ja Integers in dem Platzhalter für Objekte speichern will.
Die darf man natürlich nicht freigeben! Sorry!