AGB  ·  Datenschutz  ·  Impressum  







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

TXmlDocument.Create(nil)

Ein Thema von Perlsau · begonnen am 2. Aug 2015 · letzter Beitrag vom 2. Aug 2015
 
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: TXmlDocument.Create(nil)

  Alt 2. Aug 2015, 14:08
Erstell dir eine Dummy-TComponent-Instanz die du dem constructor übergibst. So funktionierts nicht.
Doch, mit der letztgenannten Lösung funktioniert es tatsächlich: Ich weise dem Create der Klasseninstanz als Owner das aufrufende Formular zu und kann dann ohne Probleme diesen Owner auch der Instanz von TXmlDocument zuweisen.

Das Problem liegt in der gemischten Verwendung von Interfaces und der Klassen-Instanz.
Was meinst du damit genau? Wo verwende ich diese beiden gemischt? Der Fehler in der ersten Variante XmlDok := TXmlDocument.Create(nil); wird ja bereits beim Versuch, auf das Root-Element zuzugreifen, ausgelöst. Und TXmlDocument.DocumentElement ist doch eine Eigenschaft von TXmlDocument , oder etwa nicht?

Lösung: XmlDok:IXmlDocument; , dann klappt es auch ohne Owner
Okay, das habe ich versucht. IXmlDocument kann nicht erzeugt werden, denn es verfügt nicht über eine Create-Methode.
Delphi-Quellcode:
procedure TFormMain.XMLfile_Open(const Datei: String);
Var
  XmlDok : IXmlDocument;
  Root : IXmlNode;
  Txt : String;

begin
  Try
    XmlDok.LoadFromFile(Datei); // erzeugt Zugriffsverletzung
    Root := XmlDok.DocumentElement;
    If Root.HasChildNodes Then
    Begin
      Txt := Root.ChildNodes['rootfiles'].ChildNodes['rootfile'].AttributeNodes['full-path'].Text;
      Memo1.Lines.Append(Txt);
    End;
  Finally
    XmlDok := nil;
  End;
end;
Der Versuch, ein XML-Dokument zu laden, löst jedoch eine Zugriffsverletzung aus:

Im Projekt XMLTEST.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 0047C70D in Modul 'XMLTEST.exe'. Lesen von Adresse 00000000' aufgetreten.
  Mit Zitat antworten Zitat
 


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 21:07 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