Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
Delphi 2005 Professional
|
Re: InterfacedObject freigeben
25. Nov 2005, 09:12
Danke für eure schnellen Antworten.
@xaromz:
Ja, das mit dem fDestroying hatte ich mir auch überlegt. Ich dachte nur, vielleicht gibt es eine noch etwas elegantere Methode. Werd's aber jetzt wohl einfach so machen.
@maximov:
Sorry, aber ich verstehe nicht so ganz, was du mir sagen willst. Dass ich die Liste von vornherein nur als Interface speichern soll? Bin ich ehrlich gesagt nicht so versessen drauf. Und das mit dem zu niedrigen Referenzzähler hab ich ja umgangen indem ich im Konstruktor einfach die Referenz erhöht hab.
Das Problem ist ja eher folgendes (ich male mal so eine Art "Aufrufdiagramm"):
Liste.Free -> Liste.Destroy -> Liste.BeforeDestruction -> Interface._Release -> Liste.Destroy -> Liste.BeforeDestruction -> Interface._Release
etc etc
Diesen doppelten Aufruf des Destruktors wollte ich umgehen. Aber wie es scheint geht das tatsächlich nur indem ich ein neues Feld einführe.
Christian Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
|