![]() |
Interface freigeben?
Hallo,
ich hatte Probleme mit der TXMLDocument Komponente, da ich keinen Owner für diese habe. Jetzt verwende ich das IXMLDocument, was ja so wie ich das sehe ein Interface ist. Muss man das garnicht irgendwie freigeben oder so? :wiejetzt: :angel: |
Re: Interface freigeben?
Nein muss man nicht. Wird genauso freigegeben wie ein String oder ein dynamisches Array.
|
Re: Interface freigeben?
Hallo,
du kannst die Variable zwar NIL setzen. aber richtig frei wird sie erst, wenn der Scope (die Prozedur, in der die Variable definiert ist), verlassen wird. Man sollte Interface-Variablen deshalb immer lokal definieren. Heiko |
Re: Interface freigeben?
hmmm, in Delphi dacht ich, würde das freigegeben, wenn keine "Variable" mehr darauf verweißt?
|
Re: Interface freigeben?
Zitat:
Sofern Referenzzählung implementiert ist, dekrementiert das setzen einer Interface variablen den Referenzcounter. Erreicht dieser 0, wird das Objekt, welches das Interface implementiert und ursprünglich erzeugt wurde, freigegeben. |
Re: Interface freigeben?
Jap. Man kann die Autoreferenzierung auch selber umgehen. ABer da muss man IMHO genau wissen, das man die nicht mehr braucht. Gab auch einige Beiträge zu dem Thema hier im Forum.
|
Re: Interface freigeben?
Zitat:
|
Re: Interface freigeben?
Hallo,
ja, bei Excel ist das aber etwas anders (OK, es ging nicht um Excel ...). Es gab vor kurzem hier einen Thread bezüglich OLE-Automation und dann Öffnen der erzeugten Excel-Datei (ebenfalls per OLE). Klappt nicht (habe ich selber am eigenen Leib erlebt), wenn beides in einer einzigen Routine erfolgt. Lagere ich das Erzeugen und Anzeigen in 2 Routinen aus, jeweils mit eigenen lokalen Interface-Variablem, klappt es. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz