also nun nochmal komplett.
im Anhang eine Version ohne Speicherleck.
Zum einen ist zu beachten, dass eine Objectlist keine TCollection ist, also die Elemente der Liste müssen manuell selbst im Destructor gelöscht werden.
Delphi hat aber ein Bug in "DeleteRange" in TList<> und TObjectList<>, welcher den Abstrakten Fehler erzeugt.
Umgehen kann man ihn, indem man jedes Element einzeln im Destructor löscht. (absteigend durchgehen)
Erzeugung über JSON jetzt besser über eine class function.
Im Anhang ein funktionierendes Projekt (ohne Speicherlecks)
Delphi-Quellcode:
destructor TObjectsTEntry.destroy;
var i : Integer;
entry : TEntry;
begin
for i := self.Count-1 downto 0 do begin
entry := self.Items[i];
entry.Free;
self.Delete(i);
end;
self.Clear;
inherited;
end;
Delphi-Quellcode:
class function TEntryList.Create(aJSON: string) : TEntryList;
begin
result := TJson.JsonToObject<TEntryList>(aJSON);
end;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.