Das Mischen von Objekten und Interfaces kann unangenehme Folgen haben!!
Delphi-Quellcode:
procedure TFrameKundenliste.Aktualisieren(Sender: TObject);
var
FilterFrame: IFilterFrame;
begin
if Supports(Sender, IFilterFrame, FilterFrame) then
begin
// intern wurde jetzt FilterFrame.AddRef aufgerufen
// der Referenzzähler steht jetzt auf 1
FilterFrame.DoSomething;
end;
// jetzt gerät FilterFrame out-of-scope
// also wird FilterFrame.Release aufgerufen
// dann steht der Refernzzähler auf 0 und das Objekt wird freigegeben !!!
// es sei denn, man hat spezielle Maßnahmen getroffen, dass das nicht passiert
end;