Was passiert?
Delphi-Quellcode:
Releasesteps:=TProgreleaseClass.Create(true); //True = Liste ist Eigentümer der Items
myitem:=TProgreleaseitemClass.create; // erzeugen Item
releasesteps.add(myitem); // Item in Liste
myitem.Free; // Item wegwerfen ... auch auch aus der Liste. Die hällt nur dem Pointer auf das Objekt.
PS: Müßte eine Zugriffsverletzung geben beim "Free" der Liste, weil der Poiner in der Liste schon freigegeben ist.
PS: Dein Code ist schwierig zu lesen wegen der ungewöhnlichen Einrückung und der ungewöhnlichen Groß/Kleinschreibung.