Du Hast der Objectlist zwei mal das gleiche Objekt zugewiesen.
objectlist[0] und objectlist[1] zeigen beide auf das gleiche objekt.
Somit dürfte zuerst der Wert "Milch" zugewiesen werden. Diese wird dann mit "Wasser" überschrieben.
So wäre es richtig:
Delphi-Quellcode:
ObjectList := TObjectList.create;
Frezept := Trezept.create(self);
ObjectList.Add(Frezept);
Frezept := Trezept.create(self);
ObjectList.Add(Frezept);
Trezept(ObjectList[0]).zutat[0] := 'Milch';
Trezept(ObjectList[1]).zutat[0] := 'Wasser';
Gerd