Forum: Programmieren allgemein
by DeddyH,
17. Jun 2017
Nimm doch beim Löschen einfach den Index innerhalb der Objektliste, dann kann doch nichts schiefgehen. Pseudo-Code:
idx := Liste.IndexOf(VST.NodeData);
if idx > -1 then
Liste.Delete(idx);
Forum: Programmieren allgemein
by DeddyH,
17. Jun 2017
Das müssen sich dann aber andere anschauen, ich sitze gerade am Tablet. Aber eine andere Frage: wird die Liste noch anderweitig benutzt, oder dient sie lediglich der Speicherverwaltung? Im letzteren Fall könntest Du doch komplett darauf verzichten.
Forum: Programmieren allgemein
by DeddyH,
17. Jun 2017
Das siehst Du schon richtig, machst es Dir aber auch unnötig schwer. Ich an Deiner Stelle würde die Objekte speichertechnisch weiterhin von der Objektliste verwalten lassen und eine Referenz in den Knoten ablegen, wie Du es ja vorher hattest. Wird nun ein Knoten gelöscht, merkst Du Dir die Referenz, holst Dir deren Index aus der Objektliste und löschst dann diesen Index aus der Liste. Steht dort...
Forum: Programmieren allgemein
by DeddyH,
17. Jun 2017
Das klingt so, als hättest Du Mehrfach-Referenzen auf Deine Objekte. Wenn man da nicht aufpasst, schafft man sich ganz schnell wilde Zeiger, was zu den geschilderten Problemen führt. Also entweder dafür sorgen, dass beim Zerstören der Objekte alle Referenzen genilt werden oder einfach Interfaces verwenden.