Registriert seit: 18. Mär 2005
1.682 Beiträge
Delphi 2006 Enterprise
|
Re: ZV bei Freigeben von TObjectList mit Interface
21. Dez 2008, 09:00
Hallo,
Dein Problem dürfte die Referenzzählung von Interfaces sein:
Wenn Du ein Objekt instanziierst, welches ein Interface implementiert, und dieses Objekt nur einer Objektvariable zuweist, dann ist der Referenzzähler null. Wenn Du jetzt ein Supports() machst, dann wird intern mittels QueryInterface das Interface angefordert, der Referenzzähler erhöht und danach wieder vermindert. Folglich fällt er auf Null zurück und das Objekt wird freigegeben.
Merke: Niemals Objektreferenzen und Interfacereferenzen mischen (außer Du weißt genau, was Du tust)!
Gruß
xaromz
I am a leaf on the wind - watch how I soar
|