Forum: Sonstige Fragen zu Delphi
Delphi
by Apollonius,
13. Aug 2009
Der TDataViewer sollte keine Referenzzählung durchführen, d.h. AddRef und Release leer implementieren. Man könnte auch eine Klasse zur Verfügung stellen, die IInterface entsprechend implementiert, und von der dann (anstatt von TInterfacedObject) abgeleitet werden kann.
Forum: Sonstige Fragen zu Delphi
Delphi
by Apollonius,
13. Aug 2009
@himitsu: Auch hier gibst du durch das abschließende _Release das Objekt schon frei.
Edit: Hoppla, zu früh geschrien. Das ist ja ein l.Free am Ende. :oops:
Forum: Sonstige Fragen zu Delphi
Delphi
by Apollonius,
12. Aug 2009
Die TInterfaceList ist eine Liste von Interfaces (soweit bist du wahrscheinlich schon gekommen :mrgreen: ).
Beim .Add holt sie sich eine Referenz auf das übergebene Interface -> AddRef, Referenzzähler 1.
Beim .Remove verliert sie die Reference -> Release, Referenzzähler 0, Freigabe des Objekts.
Wie sonst auch gilt also auch hier die Regel: Interfaces und Klassen sind nur mit viel Umsicht zu...