1. Du machst es dir zu Kompliziert, wenn
QwnObjects der
TObjectList noch auf True ist (Standard) dann recht ein Clear aus, bzw. ein zerstören der Liste selber, diese gibt dann alle Objecte frei...
2. Wäre eine rückwärts laufende For-Sschleife bei weitem schneller...
3. Die
Exception kommt aus dem Destructor des Objetes welches du da versuchst freizugeben... (denk ich, also durchlauf ihn mal mit dem Debugger...)
Bye Christian
Edit: Wie ich sehe, erstellst du die Liste sogar explezit nochmal mit
OwnsObjects := True;, vondaher kannst du dir deinen ganzen Code da im destructor sparen, wenn du dir mal die Vorfahren deiner Liste anschaust, wirst du sehen, dass diese alle Objecte freigibt...
Ansatzpunkt wie gehabt Punkt 3.