AllesFreigeben würde ich nie in einer for-Schleife machen sondern: (while schleife)
Wieso das denn? Das ist doch vollkommen überflüssig.
Delphi-Quellcode:
For i:=0 to List.Count - 1 do
List[i].Free;
List.Free;
Reicht vollkommen, ist sicher, kurz, verständlich und sauber. Was will man mehr?
Ich würde für Objekte übrigens eine TObjectList geben und dann per
Delphi-Quellcode:
MyObjectList := TObjectList.Create(True);
...
MyObjectList.Free;
alles wieder freigeben. Das ist dann noch sicherer, kürzer, verständlicher und sauberer, sozusagen porentief