<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[TXML in BCB6 Pro]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein Problem und zwar, will ich ein TXML-Document in BCB6 Prof. verwenden. Ich habe folgenden Quellcode:</p>
<pre><code class="language-cpp">class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
   TButton *Start;
   TListBox *ListBox1;
   TOpenDialog *OpenDialog1;
   TSaveDialog *SaveDialog1;
   void __fastcall StartClick(TObject *Sender);
private:	// Anwender-Deklarationen
public:		// Anwender-Deklarationen
   __fastcall TForm1(TComponent* Owner);
   TXMLDocument *XMLLOGFILE;
   TXMLDocument *CAEDocument;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
</code></pre>
<pre><code class="language-cpp">__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
   TXMLDocument *XMLLOGFILE  = new TXMLDocument(&quot;&quot;);
   TXMLDocument *CAEDocument = new TXMLDocument(&quot;&quot;);
}
</code></pre>
<pre><code class="language-cpp">void __fastcall TForm1::StartClick(TObject *Sender)
{
   _di_IXMLNodeList  CamList, PlaceList;
   _di_IXMLNode      PlaceNode;
   AnsiString        FileName;
   bool Err = false;
   modul aktuell;

   //CAM-Datei öffnen:
   OpenDialog1-&gt;InitialDir = &quot;.&quot;;
   OpenDialog1-&gt;Filter = &quot;CAM-Dateien | *.cam&quot;;
   if(OpenDialog1-&gt;Execute())
   {
      try
      {  // Datei mit OpenDialog öffnen:
 :arrow_right:      this-&gt;CAEDocument-&gt;Active = True;
         this-&gt;CAEDocument-&gt;FileName = OpenDialog1-&gt;FileName;
         CAEDocument-&gt;ParseOptions = CAEDocument-&gt;ParseOptions &lt;&lt; poResolveExternals;
         CAEDocument-&gt;ParseOptions = CAEDocument-&gt;ParseOptions &lt;&lt; poValidateOnParse;
      }
      catch(Exception &amp;e) 
      { 
          MessageBox(Handle, e.Message.c_str(), &quot;Fehler&quot;, MB_ICONERROR); 
      } 
}
</code></pre>
<p>Wie ihr seht eigentlich nichts ungewöhnliches! Weder der Compiler noch Linker melden einen Fehler. Erst zur Laufzeit (siehe Pfeil) tritt ein Fehler auf mit folgendem Text:</p>
<pre><code>Benachrichtigung über Debugger-Exception
Im Projekt CAM.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 
'Zugriffsverletzung bei Adresse 00402264.Lesen der Adresse 00000000'. 
Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
</code></pre>
<p>Das Programm an und für sich hat schon funktioniert, allerdings mit einer Enterprise-Version. Aus diesem Grund (Enterprise -&gt; Pro) , musste ich die Komponente TXML entfernen und wollte es dann so wie oben lösen. Ich scheine aber irgendwas vergessen oder falsch gemacht zu haben. Ich hoffe ich bekomme hier Hinweise oder Tipps was der Fehler sein könnte oder wie ich bei der Fehlersuche fortfahren könnte.</p>
<p>DANKE!!! *Noodle*</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143949/txml-in-bcb6-pro</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 20:42:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143949.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Apr 2006 08:17:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TXML in BCB6 Pro on Thu, 13 Apr 2006 08:17:48 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein Problem und zwar, will ich ein TXML-Document in BCB6 Prof. verwenden. Ich habe folgenden Quellcode:</p>
<pre><code class="language-cpp">class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
   TButton *Start;
   TListBox *ListBox1;
   TOpenDialog *OpenDialog1;
   TSaveDialog *SaveDialog1;
   void __fastcall StartClick(TObject *Sender);
private:	// Anwender-Deklarationen
public:		// Anwender-Deklarationen
   __fastcall TForm1(TComponent* Owner);
   TXMLDocument *XMLLOGFILE;
   TXMLDocument *CAEDocument;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
</code></pre>
<pre><code class="language-cpp">__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
   TXMLDocument *XMLLOGFILE  = new TXMLDocument(&quot;&quot;);
   TXMLDocument *CAEDocument = new TXMLDocument(&quot;&quot;);
}
</code></pre>
<pre><code class="language-cpp">void __fastcall TForm1::StartClick(TObject *Sender)
{
   _di_IXMLNodeList  CamList, PlaceList;
   _di_IXMLNode      PlaceNode;
   AnsiString        FileName;
   bool Err = false;
   modul aktuell;

   //CAM-Datei öffnen:
   OpenDialog1-&gt;InitialDir = &quot;.&quot;;
   OpenDialog1-&gt;Filter = &quot;CAM-Dateien | *.cam&quot;;
   if(OpenDialog1-&gt;Execute())
   {
      try
      {  // Datei mit OpenDialog öffnen:
 :arrow_right:      this-&gt;CAEDocument-&gt;Active = True;
         this-&gt;CAEDocument-&gt;FileName = OpenDialog1-&gt;FileName;
         CAEDocument-&gt;ParseOptions = CAEDocument-&gt;ParseOptions &lt;&lt; poResolveExternals;
         CAEDocument-&gt;ParseOptions = CAEDocument-&gt;ParseOptions &lt;&lt; poValidateOnParse;
      }
      catch(Exception &amp;e) 
      { 
          MessageBox(Handle, e.Message.c_str(), &quot;Fehler&quot;, MB_ICONERROR); 
      } 
}
</code></pre>
<p>Wie ihr seht eigentlich nichts ungewöhnliches! Weder der Compiler noch Linker melden einen Fehler. Erst zur Laufzeit (siehe Pfeil) tritt ein Fehler auf mit folgendem Text:</p>
<pre><code>Benachrichtigung über Debugger-Exception
Im Projekt CAM.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 
'Zugriffsverletzung bei Adresse 00402264.Lesen der Adresse 00000000'. 
Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
</code></pre>
<p>Das Programm an und für sich hat schon funktioniert, allerdings mit einer Enterprise-Version. Aus diesem Grund (Enterprise -&gt; Pro) , musste ich die Komponente TXML entfernen und wollte es dann so wie oben lösen. Ich scheine aber irgendwas vergessen oder falsch gemacht zu haben. Ich hoffe ich bekomme hier Hinweise oder Tipps was der Fehler sein könnte oder wie ich bei der Fehlersuche fortfahren könnte.</p>
<p>DANKE!!! *Noodle*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036510</guid><dc:creator><![CDATA[Noodle]]></dc:creator><pubDate>Thu, 13 Apr 2006 08:17:48 GMT</pubDate></item><item><title><![CDATA[Reply to TXML in BCB6 Pro on Thu, 13 Apr 2006 08:22:27 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>überleg dir mal, wann lokale Variablen ihre Gültigkeit verlieren und warum du Membervariablen nicht wie lokale Variablen nennen sollst.<br />
Der Konstruktor muß so aussehen :</p>
<pre><code class="language-cpp">__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
   XMLLOGFILE  = new TXMLDocument(&quot;&quot;);
   CAEDocument = new TXMLDocument(&quot;&quot;);
}
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036514</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 13 Apr 2006 08:22:27 GMT</pubDate></item><item><title><![CDATA[Reply to TXML in BCB6 Pro on Thu, 13 Apr 2006 08:28:01 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Danke schon mal, klar jetzt funktioniert es. So war der Konstruktor gemeint:</p>
<pre><code class="language-cpp">__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner)
{
   this-&gt;XMLLOGFILE  = new TXMLDocument(&quot;&quot;);
   this-&gt;CAEDocument = new TXMLDocument(&quot;&quot;);
}
</code></pre>
<p>Jetzt ist eine anderer Fehler zur Laufzeit aufgetreten. Das werde ich mir mal anschauen und wenn ich nicht weiterkomme würde ich wieder auf dich/euch zurück kommen.</p>
<p>Danke nochmal. *Noodle*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036517</guid><dc:creator><![CDATA[Noodle]]></dc:creator><pubDate>Thu, 13 Apr 2006 08:28:01 GMT</pubDate></item><item><title><![CDATA[Reply to TXML in BCB6 Pro on Thu, 13 Apr 2006 08:36:34 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>noch drei Anmerkungen :<br />
- das this-&gt; brauchst du in den Fällen nicht.<br />
- Benutzt eine eindeutige Konvention, um deine Membervariablen zu benennen. Zum Beispiel <em>m_CAEDocument</em>. Dann fallen solche Fehler leichter auf, wenn in Methoden plötzlich eine Variable mit m_ dekalriert wird.<br />
- benutz die Initialisierunglisten von Konstruktoren</p>
<pre><code class="language-cpp">__fastcall TForm1::TForm1(TComponent* Owner)
   : TForm(Owner), XMLLOGFILE(new TXMLDocument(&quot;&quot;)), CAEDocument(new TXMLDocument(&quot;&quot;))
{
}
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036522</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 13 Apr 2006 08:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to TXML in BCB6 Pro on Thu, 13 Apr 2006 10:43:15 GMT]]></title><description><![CDATA[<p>Also, ich komme irgendwie nicht weiter. Immer diese doofen EAccessViolations!!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Hier liegt es an der CamList. Aber wie gesagt, warum darauf nicht zugegriffen werden kann, weiß ich nicht. An diesem Punkt habe ich gar keine Änderungen gemacht zwecks Enterprise / Pro -Version. Deshalb wundert mich es, dass das ganze jetzt nicht mehr funktioniert!</p>
<pre><code class="language-cpp">void __fastcall TForm1::StartClick(TObject *Sender)
{
   _di_IXMLNodeList  CamList, PlaceList;
   _di_IXMLNode      PlaceNode;
   AnsiString        FileName;
   bool Err = false;
   modul aktuell;

   //CAM-Datei öffnen:
   OpenDialog1-&gt;InitialDir = &quot;.&quot;;
   OpenDialog1-&gt;Filter = &quot;CAM-Dateien | *.cam&quot;;
   if(OpenDialog1-&gt;Execute())
   {
      try
      {  // Datei mit OpenDialog öffnen:
         this-&gt;CAEDocument-&gt;Active = True;
         this-&gt;CAEDocument-&gt;FileName = OpenDialog1-&gt;FileName;
         CAEDocument-&gt;ParseOptions = CAEDocument-&gt;ParseOptions &lt;&lt; poResolveExternals;
         CAEDocument-&gt;ParseOptions = CAEDocument-&gt;ParseOptions &lt;&lt; poValidateOnParse;
      }
      catch(Exception &amp;e) 
      { 
          MessageBox(Handle, e.Message.c_str(), &quot;Fehler&quot;, MB_ICONERROR); 
      } 
      aktuell.SetCamNode(CAEDocument-&gt;DocumentElement);
 :arrow_right:   CamList = aktuell.GetCamNode()-&gt;ChildNodes;
}
</code></pre>
<pre><code class="language-cpp">void  __fastcall modul::SetCamNode(IXMLNode *Node)
{
   this-&gt;CamNode = Node;
}
_di_IXMLNode __fastcall  modul::GetCamNode()
{
   return this-&gt;CamNode;
}
</code></pre>
<p>Ich danke euch nochmal für eure Unterstützung! *NOODLE*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036630</guid><dc:creator><![CDATA[Noodle]]></dc:creator><pubDate>Thu, 13 Apr 2006 10:43:15 GMT</pubDate></item><item><title><![CDATA[Reply to TXML in BCB6 Pro on Thu, 13 Apr 2006 11:22:16 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Benutz den Debugger und schau dir die einzelnen Werte an, vor allem von <em>CAEDocument-&gt;DocumentElement</em>. mehr läßt sich da von uns aus nicht sagen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036678</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 13 Apr 2006 11:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to TXML in BCB6 Pro on Thu, 13 Apr 2006 11:33:50 GMT]]></title><description><![CDATA[<p>Ja, das habe ich in der Zwischenzeit auch schon gemacht. Da steht leider der Wert NULL drin...</p>
<p>Ich danke trotzdem und werde jetzt mal weiter suchen, warum in CAEDocument nichts reingeschrieben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036701</guid><dc:creator><![CDATA[Noodle]]></dc:creator><pubDate>Thu, 13 Apr 2006 11:33:50 GMT</pubDate></item><item><title><![CDATA[Reply to TXML in BCB6 Pro on Thu, 13 Apr 2006 13:06:47 GMT]]></title><description><![CDATA[<p>Also, ich habe jetzt nochmal in meinem Programm nach einem Fehler gesucht. Natürlich habe ich nichts gefunden.....</p>
<p>Dann habe ich mal eine Testausgabe gemacht und siehe da, es wird was erkannt:</p>
<pre><code class="language-cpp">this-&gt;ListBox1-&gt;Items-&gt;Add(CAEDocument-&gt;DocumentElement-&gt;GetNodeName());
         CamNode = CAEDocument-&gt;DocumentElement;
         CamList = CamNode-&gt;ChildNodes;
</code></pre>
<p>Ergibt in der Ausgabe den Namen des Root-Knotens. Soweit so gut, also kann über CAEDocument-&gt;DocumentElement, Daten ausgelesen werden. Will ich den Knoten DocumentElement aber irgendwo fest reinschreiben, dass ich über die Variable auf den Knoten zugreifen kann, gehts nicht. Auch beim Untersuchen der Variable DocumentElement zur Laufzeit steht nur NULL drin.</p>
<p>Weiß jemand vielleicht Rat? Was kann ich denn nochmachen um dahinter zu kommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1036777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1036777</guid><dc:creator><![CDATA[Noodle]]></dc:creator><pubDate>Thu, 13 Apr 2006 13:06:47 GMT</pubDate></item></channel></rss>