![]() |
TXMLDocument vs. IXMLDocument
Worin besteht der Unterschied??
|
Re: TXMLDocument vs. IXMLDocument
*g*
Eine Variable vom Typ TXMLDocument ist ein Pascal(Delphi)-Objekt. Eine Variable vom Typ IXMLDocument ist ein COM-Interface. Wenn Du nur innerhalb von einer Delphi-Anwedung arbeitest ist TXMLDocument wahrscheinlich besser, da es schneller ist. Wahrscheinlich deshalb, da ich mir nicht sicher bin, wie Du es am besten nutzt :mrgreen: Wenn Du die Objekte zwischen Anwendungen hin und her schieben musst, dann ist IXMLDocument besser, da es einerseits dem Betriebssystem "von selbst erklären" kann, wie es zu handhaben ist und andererseits das Objekt automatisch freigegeben wird, wenn der letzte damit fertig ist. ...:cat:... |
Re: TXMLDocument vs. IXMLDocument
Ok, danke, ich glaub ich habs kapiert :idea:
|
AW: TXMLDocument vs. IXMLDocument
Das ist jetzt gerade 10 Jahre alt geworden, aber ich möchte hier trotzdem nochmal nachhaken. Für gewöhnlich ist es ja so, man deklariert ein IXMLDocument und erzeugt dann darauf ein TXMLDocument
Code:
TXMLDocument erbt ja von TComponent und implementiert zusätzlich IInterface, IXMLDocument (und IXMLDocumentAccess).
var
XMLDoc:IXMLDocument; begin XMLDoc:=TXMLDocument.Create(nil); ... XMLDoc ist nach dem Create ein TXMLDocument, verhält sich aber wie ein Interface inkl. automatischer Referenzzählung? Und diese löscht dann automatisch auch den TComponent/TXMLDocument-Teil, der nicht zum IXMLDocument dazugehört wenn XMLDoc auf Nil gesetzt wird? Ist das so richtig oder verhält sich die Sache anders? |
AW: TXMLDocument vs. IXMLDocument
Deine lokale Variable ist vom Typ
Delphi-Quellcode:
. Damit greift ARC schon.
IXMLDocument
Du musst auch nichts auf nil setzen, das Verlassen des Gültigkeitsbereichs (also hier dem Ende der Methode) reicht auch schon. Gibt es einen Grund speziell für
Delphi-Quellcode:
? Weil ich sehe eigentlich nur immer
TXMLDocument.Create(nil)
Delphi-Quellcode:
...
XMLDoc:=NewXMLDocument();
"den TComponent/TXMLDocument-Teil, der nicht zum IXMLDocument dazugehört" - Wenn der Referenzzähler beim Verlassen der Methode dekrementiert wird, fällt auf, dass sich niemand mehr für das Dokument interessiert. Der Destruktor der Instanz wird aufgerufen. Alles wird zerstört. |
AW: TXMLDocument vs. IXMLDocument
Zitat:
![]() Mit NewXMLDocument ist alles logisch, weil das ein IXMLDocument zurückgibt. Was mich wirsch macht ist, dass man eine Variable vom Typ IXMLDocument, also ein Interface hat, aber ein Objekt aus der Klasse TXMLDocument erzeugt und dieser zuweist. Mich interessiert, was mit diesem Objekt passiert. Meine derzeitige Interpretation ist, dass das Interface wie eine Oberklasse funktioniert, der ich ja auch abgeleitete Klassen zuweisen kann. Und je länger ich drüber nachdenke, desto mehr Sinn ergibt das :-D |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 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-2025 by Thomas Breitkreuz