Forum: Programmieren allgemein
Delphi
by DeddyH,
14. Jun 2017
2 mal Free aufzurufen bzw. aufrufen zu lassen, ohne die Instanzvariable auf nil zu setzen, das kann man falsch machen. Free prüft intern auf nil ab, bevor Destroy aufgerufen wird. Das nützt aber nichts, wenn die Instanz zwar weg, die entsprechende Variable aber nicht nil ist. Stichwort Dangling Pointer oder auf deutsch wilde Zeiger.
Forum: Programmieren allgemein
Delphi
by DeddyH,
14. Jun 2017
Du scheinst irgend etwas falsch zu machen. Rufst Du Sprite.Free selbst auf, oder lässt Du das nur die Liste machen?
Forum: Programmieren allgemein
Delphi
by DeddyH,
14. Jun 2017
Ja, Du machst es von außen. Besser wäre es aber, wenn die Sprite-Objekte das selbst in die Hand nehmen. Und Du hast keinen Record mehr, finde Dich damit ab ;). Mal abgesehen von etwas mehr Overhead sollte man meiner persönlichen Meinung nach Klassen eh den Vorzug geben.
Forum: Programmieren allgemein
Delphi
by DeddyH,
14. Jun 2017
Die Objektliste gibt nur die in ihr enthaltenen Objekte frei. Enthalten diese wiederum selbst erstellte Ressourcen o.ä., so ist es deren Aufgabe, sich um das korrekte Abräumen zu kümmern.
Forum: Programmieren allgemein
Delphi
by DeddyH,
14. Jun 2017
Ja und? Du kannst doch trotzdem den Destruktor überschreiben.
Forum: Programmieren allgemein
Delphi
by DeddyH,
13. Jun 2017
Nein, Count sollte in Deinem Fall 6 ergeben (man darf Count nicht mit Capacity verwechseln).
Forum: Programmieren allgemein
Delphi
by DeddyH,
13. Jun 2017
Nochmal ganz langsam: wie spricht man ein Array-Element an?
Array
Und ein Listenelement?
List
Mal abgesehen von Low() und High() müsste am Zugriff auf die Elemente doch nichts ändern. Sry, ich verstehe Deine Einwände nicht.
Forum: Programmieren allgemein
Delphi
by DeddyH,
13. Jun 2017
Wieso nicht? Ich sehe da auf Anhieb nichts in Deinem Code, das unbedingt Records und Arrays brauchen würde.
Forum: Programmieren allgemein
Delphi
by DeddyH,
13. Jun 2017
Du brauchst es ja auch nicht ;)
Forum: Programmieren allgemein
Delphi
by DeddyH,
13. Jun 2017
Was willst Du denn immer mit dem Array?
uses System.Generics.Collections;
...
var
SpriteList: TObjectList<TSprite>;
Sprite: TSprite;
begin