@sx2008
das olist.Remove(0);
statt olist.Remove(olist[0]);
könnte zu einer verstärkten Verwirrung führen....
Delphi-Quellcode:
olist := TObjectList.create({OwnsObjects=}True);
olist.Add(TTestObj.Create('Object A'));
olist.Add(TTestObj.Create('Object B'));
olist.Add(TTestObj.Create('Object C'));
olist.Delete(0);
olist.Remove(olist[0]);
ShowMessage('vor [TObjectList].Free...');
olist.Free;