Forum: Programmieren allgemein
Delphi
by himitsu,
13. Jun 2017
Nicht übeball, wie z.B. beim TDictionary.
Forum: Programmieren allgemein
Delphi
by himitsu,
13. Jun 2017
Bei TList mit Pointern ja,
in TList<IrgendeinPointer> auch,
aber die TList<EinRecordOderEinAndererEinfacherTypSowieDynArraysUndInterfaces> kümmert sich um alles.
Unter ARC werden auch Objekte gut verwaltet ... da ist dann eine TList<> und TObjektList<> praktisch das Selbe.
Bei TObjectList und Anderen kann man im Constructor angeben, ob sich die Liste um das Free kümmert.
Forum: Programmieren allgemein
Delphi
by himitsu,
13. Jun 2017
Selbst wenn es funktionieren würde, würde es dich nicht helfen, denn das "Result" ist eine Kopie des Inhalts.
Man kann der TList<> ein neues Items-Property verpassen, welches einen Pointer raus gibt, der auf das Items im internen Record zeigt.
Ist natürlich nicht standardmäßig eingebaut, da es ein Sonderfall und außerdem "unsicher" ist.
Dann doch eher die TList abbauen und veränderbare...
Forum: Programmieren allgemein
Delphi
by himitsu,
12. Jun 2017
Nee, das ist schon immer so, wenn man einen Record als Property-Typ nutzt.
Es kann immer nur ein kompletter Record geändert werden, was auch klar, da es entweder der Getter oder der Setter benutzt wird und leider niemals Beides (außer man macht es selber) und da Records auch keine Referenzen sind, wie z.B. ein Objekt. :zwinker:
Forum: Programmieren allgemein
Delphi
by himitsu,
12. Jun 2017
Nee, aber Zeiger auf Records ginge
oder Records in Dataobjekten.
Oder seit D2009 eine generische TList<Record> bzw. vermutlich eher ein TDictionary<String,Record>
Forum: Programmieren allgemein
Delphi
by himitsu,
12. Jun 2017
Wenn kein ARC in Sicht ist,
dann Pointere doch einfach bissl rum.