AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TXMLDocument vs. IXMLDocument

Ein Thema von chris_82 · begonnen am 1. Sep 2003 · letzter Beitrag vom 7. Okt 2013
Antwort Antwort
chris_82

Registriert seit: 26. Aug 2003
112 Beiträge
 
Delphi 6 Enterprise
 
#1

TXMLDocument vs. IXMLDocument

  Alt 1. Sep 2003, 12:46
Worin besteht der Unterschied??
....oop und nun...??
http://www.sengewald.info
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TXMLDocument vs. IXMLDocument

  Alt 5. Sep 2003, 18:54
*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

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.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
chris_82

Registriert seit: 26. Aug 2003
112 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: TXMLDocument vs. IXMLDocument

  Alt 6. Sep 2003, 11:22
Ok, danke, ich glaub ich habs kapiert
....oop und nun...??
http://www.sengewald.info
  Mit Zitat antworten Zitat
Elmariachi

Registriert seit: 25. Jan 2005
5 Beiträge
 
#4

AW: TXMLDocument vs. IXMLDocument

  Alt 7. Okt 2013, 11:20
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:
var
XMLDoc:IXMLDocument;
begin
XMLDoc:=TXMLDocument.Create(nil);
...
TXMLDocument erbt ja von TComponent und implementiert zusätzlich IInterface, IXMLDocument (und IXMLDocumentAccess).

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?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: TXMLDocument vs. IXMLDocument

  Alt 7. Okt 2013, 12:39
Deine lokale Variable ist vom Typ IXMLDocument . Damit greift ARC schon.
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 TXMLDocument.Create(nil) ? Weil ich sehe eigentlich nur immer 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.
  Mit Zitat antworten Zitat
Elmariachi

Registriert seit: 25. Jan 2005
5 Beiträge
 
#6

AW: TXMLDocument vs. IXMLDocument

  Alt 7. Okt 2013, 13:10
Zitat:
Gibt es einen Grund speziell für TXMLDocument.Create(nil) ?
Embarcadero hat das selbst so in den Beschreibungen drin, siehe Link und man findet es auch sonst oft wenn man danach sucht.

http://docwiki.embarcadero.com/CodeE...e_%28Delphi%29

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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz