Einzelnen Beitrag anzeigen

stoermi

Registriert seit: 1. Dez 2004
Ort: im Wald von Thüringen
75 Beiträge
 
Delphi 6 Enterprise
 
#1

Problem beim zerstören von Instanz

  Alt 4. Jan 2005, 16:25
Hallo!
Ich hab ein Problem beim zerstören von Instanzen beim Beenden des Programms!
Und zwar habe ich eine Reihe von Instanzen einer Klasse x. In dieser Klasse x befindet sich eine Variable, die auf eine Instanz der Klasse y zeigt.
Am Ende des Programms durchlaufe ich alle Instanzen der Klasse x und schaue mittels assigned, bevor ich sie zerstöre, ob in der Variable noch eine Instanz der Klasse y besteht.
Bringt mir das true, wird auch die Instanz von y zerstört.
Doch jetzt zum Problem: Wenn ich zur Laufzeit bereits durch eine andere Methode die Instanz von y zerstört habe, liefert mir assigned trotzdem true und wenn ich dann die Instanz zerstören will, kommt es zur Exception: der Klasse EConvertError Format '%p' ungültig oder nicht kompatibel mit Argument.
Woran könnte das liegen?

Das wird durchlaufen:
Delphi-Quellcode:
  for i := length(zimmerObj)-1 downto 0 do
  begin
    if assigned(zimmerObj[i].buchung) then
    begin
      if assigned(zimmerObj[i].buchung.kunde) then
      begin
        zimmerObj[i].buchung.kunde.Free;
      end;
      zimmerObj[i].buchung.Free; //Hier nach kommt der Fehler
    end;
    zimmerObj[i].Free;
  end;
Damit zerstöre ich es während der Laufzeit in einem anderen Formular:
Delphi-Quellcode:
    myZimmer.buchung.kunde.Free;
    myZimmer.buchung.Free;
  Mit Zitat antworten Zitat