Soll heißen, dass dein OnClose doppelt ausgeführt wird und im zweiten Durchlauf knallt es.
Wo werden denn die Objekte erstellt?
Das Gegenteil von OnCreate ist OnDestroy und nicht OnClose.
Beim Constructor ist es der Desructor.
-> Dinge immer in der selben Ebene freigeben, wo sie auch erstellt wurden.
OnShow -> OnClose
PS:
SL.Free macht auch ein Clear.
SatzList ist eine TList? Warum keine TObjectList mit OwnsObjects=True?
99 = SatzList.Count-1
Ein Therapeut entspricht 1024 Gigapeut.