Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Interfacelisten: Objekt wird bei remove freigegeben

  Alt 13. Aug 2009, 11:51
Zitat von Stevie:
Grundregel, wenn du nicht die Referenzzählung außer Kraft setzen oder anderweitig "austricksen" willst: niemals mit Objektreferenzen sondern immer mit Interfacereferenzen arbeiten, wenn dir die Referenzzählung keinen Strich durch die Rechnung machen soll
Gute Regeln können so einfach sein

Also statt

Delphi-Quellcode:
var
  L: TInterfaceList;
  X: TTest;
einfach bei den Typen öfter ein I statt eines T verwenden:

Delphi-Quellcode:
var
  L: IInterfaceList;
  X: IMyInterface;

Manche Bibliotheken funktionieren sogar besser, wenn für die Erzeugung von Instanzen Interface-Variablen benutzt werden.
Zum Beispiel kann es leicht zu Access Violations geben, wenn man für eine dynamisch erzeugte TXMLDocument Instanz den Variablentyp IXMLDocument (statt TXMLDocument) benutzt. (siehe http://edn.embarcadero.com/article/29241).



Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat