Hallo Leute, ich beging einen Fehler, den ich zum Glück fand, dessen Auswirkung ich aber dennoch nicht verstehe.
In meinem
Sortierkino verwende ich zwei selbstgebastelte Klassen zur Stackemulation:
TStackEmulator = class...
Diese haben Konstruktoren, Destruktoren und natürlich auch ein paar andere Methoden.
Einen konkreten StackEmulator, also eine Instanz, erzeuge ich natürlich mit:
StackEmulator := TStackEmulator.Create();
(Die Zahl oder Integervariable in der Klammer steht für die Anzahl der vorab gefüllten Speicherplätze als Erstbelegung.)
Später erzeugte ich noch einen zweiten, und zwar fehlerhaft:
StackEmulator2 := StackEmulator.Create();
(Keine Klassenmethode verwendet, das vorangestellte "T" ging beim Tippen unter!).
Funktionierte dennoch zur Zufriedenheit, also beide. Was mich nur wundert(e), ist, daß nach
StackEmulator2.destroy;
kein Zugriff auf den ursprünlichen, ersten, gleichnamigen StackEmulator (als Instanz) möglich war, es "knallte". Wie gesagt, die Ursache war recht schnell gefunden. Doch was nun bei mir als Ratlosigkeit zurückbleibt: Warum reißt die Destroy-Methode des vom ersten Objekt abgeleiteten Objektes auch das erste Objekt mit in den Abgrund?
Schon mal danke für's Lesen und ggf. auch die Antwort(en)!
Gruß Delphi-Laie