<?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[TEdit und TMemo lösen Fehler in vcl60.bpl aus]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Fenster (MDIChild) mit einer TEdit- und einer TMemo-Komponente. Die beiden Komponenten wurden zur Designzeit erstellt, das Fenster zur Laufzeit mit new (s.u.). Sobald ich auf eine der beiden Komponenten per Programm zugreife, lösen diese folgende Fehlermeldung aus:</p>
<blockquote>
<p>Project xy raised an exception class EAccessViolation [...] in module 'vcl60.bpl'. Read of address 00000180'.</p>
</blockquote>
<p>Wenn ich auf &lt;Ok&gt; klicke, zeigt der Debugger mir die Zeile return 0 aus der WinMain an.<br />
Folgendermaßen wurde das Fenster erstellt:</p>
<pre><code class="language-cpp">void __fastcall TMainForm::CreateMDIChild(String Name, HeTopic *topic)
{
    TMDIChild *Child = new TMDIChild(Application);
    Child-&gt;Caption = Name;
    if(topic)
        Child-&gt;Topic = topic;
}
</code></pre>
<p>Hier kommt die kritische Stelle:</p>
<pre><code class="language-cpp">void TMDIChild::SetTopic(HeTopic *topic)
{
    pTopic = topic;
    EdHeader-&gt;Text = pTopic-&gt;Header;
    MmBody-&gt;Text = pTopic-&gt;Body;
}
</code></pre>
<p>Sowohl EdHeader als auch MmBody lösen eine Fehlermeldung aus.<br />
Hier noch ein kurzer Ausschnitt aus der .h:</p>
<pre><code class="language-cpp">__property HeTopic* Topic = {read=pTopic,write=SetTopic};
</code></pre>
<p>Der Debugger liefert mir für die Variabeln schlüssige Werte. EdHeader und MmBody, die beiden Übeltäter, haben Adressen, die völlig anders sind als die in der Fehlermeldung aufgeführten.</p>
<p>Falls jemand eine Ahnung hat, woran das liegt, wäre mir sehr geholfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Viele Grüße und Danke im voraus,<br />
Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173664/tedit-und-tmemo-lösen-fehler-in-vcl60-bpl-aus</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 15:01:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173664.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Feb 2007 16:53:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TEdit und TMemo lösen Fehler in vcl60.bpl aus on Sun, 18 Feb 2007 16:53:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Fenster (MDIChild) mit einer TEdit- und einer TMemo-Komponente. Die beiden Komponenten wurden zur Designzeit erstellt, das Fenster zur Laufzeit mit new (s.u.). Sobald ich auf eine der beiden Komponenten per Programm zugreife, lösen diese folgende Fehlermeldung aus:</p>
<blockquote>
<p>Project xy raised an exception class EAccessViolation [...] in module 'vcl60.bpl'. Read of address 00000180'.</p>
</blockquote>
<p>Wenn ich auf &lt;Ok&gt; klicke, zeigt der Debugger mir die Zeile return 0 aus der WinMain an.<br />
Folgendermaßen wurde das Fenster erstellt:</p>
<pre><code class="language-cpp">void __fastcall TMainForm::CreateMDIChild(String Name, HeTopic *topic)
{
    TMDIChild *Child = new TMDIChild(Application);
    Child-&gt;Caption = Name;
    if(topic)
        Child-&gt;Topic = topic;
}
</code></pre>
<p>Hier kommt die kritische Stelle:</p>
<pre><code class="language-cpp">void TMDIChild::SetTopic(HeTopic *topic)
{
    pTopic = topic;
    EdHeader-&gt;Text = pTopic-&gt;Header;
    MmBody-&gt;Text = pTopic-&gt;Body;
}
</code></pre>
<p>Sowohl EdHeader als auch MmBody lösen eine Fehlermeldung aus.<br />
Hier noch ein kurzer Ausschnitt aus der .h:</p>
<pre><code class="language-cpp">__property HeTopic* Topic = {read=pTopic,write=SetTopic};
</code></pre>
<p>Der Debugger liefert mir für die Variabeln schlüssige Werte. EdHeader und MmBody, die beiden Übeltäter, haben Adressen, die völlig anders sind als die in der Fehlermeldung aufgeführten.</p>
<p>Falls jemand eine Ahnung hat, woran das liegt, wäre mir sehr geholfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Viele Grüße und Danke im voraus,<br />
Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1230704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230704</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sun, 18 Feb 2007 16:53:10 GMT</pubDate></item><item><title><![CDATA[Reply to TEdit und TMemo lösen Fehler in vcl60.bpl aus on Sun, 18 Feb 2007 17:59:29 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Es ist in deinen Codeauszügen nicht zu sehen,<br />
- ob in SetTopic(...) this gültig ist. Auslöser könnte so aussehen</p>
<pre><code class="language-cpp">TMDIChild* child; 
// keine Zuweisung einer gültigen Instanz!
child-&gt;SetTopic(...);
</code></pre>
<p>- ob topic auf einen gültigen Speicherbereich zeigt.</p>
<p>Jedenfalls ist das Problem von deinem Aufbau verursacht und nicht von TEdit oder TMemo.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1230758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230758</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 18 Feb 2007 17:59:29 GMT</pubDate></item><item><title><![CDATA[Reply to TEdit und TMemo lösen Fehler in vcl60.bpl aus on Sun, 18 Feb 2007 18:10:59 GMT]]></title><description><![CDATA[<p>Da spricht nicht nur der Debugger gegen (s.o.), sondern auch folgender Code in SetTopic, der auch zum Absturz führt:</p>
<pre><code class="language-cpp">EdHeader-&gt;Text = &quot;Hallo&quot;;//pTopic-&gt;Header;
        MmBody-&gt;Text = &quot;Welt&quot;;//pTopic-&gt;Body;
</code></pre>
<p>während dieses hier:</p>
<pre><code class="language-cpp">/*EdHeader-&gt;Text = &quot;Hallo&quot;;*/ pTopic-&gt;Header = &quot;Hallo&quot;;
        /*MmBody-&gt;Text = &quot;Welt&quot;;*/ pTopic-&gt;Body = &quot;Welt&quot;;
</code></pre>
<p>... hervorragend funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1230765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230765</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sun, 18 Feb 2007 18:10:59 GMT</pubDate></item><item><title><![CDATA[Reply to TEdit und TMemo lösen Fehler in vcl60.bpl aus on Sun, 18 Feb 2007 18:14:09 GMT]]></title><description><![CDATA[<p>Ich habe gerade einmal ausprobiert, in SetTopic this zu benutzen: auch das funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1230768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230768</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sun, 18 Feb 2007 18:14:09 GMT</pubDate></item><item><title><![CDATA[Reply to TEdit und TMemo lösen Fehler in vcl60.bpl aus on Sun, 18 Feb 2007 18:41:34 GMT]]></title><description><![CDATA[<p>*grübel* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Nachdem ich ein bißchen rumgespielt und festgestellt habe, daß ich lesend auf EdHeader und MmBody zugreifen kann (z.b. if(EdHeader-&gt;Text == &quot;&quot;);), habe ich folgendes ausprobiert und es läuft:</p>
<pre><code class="language-cpp">void __fastcall TMDIChild::SetTopic(PHeTopic topic)
{
    EdHeader-&gt;Text = topic-&gt;Header;
    MmBody-&gt;Text = topic-&gt;Body;

    pTopic = topic;    // war vorher an erster Stelle, vor der &quot;Header&quot;-Zeile.
}
</code></pre>
<p>Einfach die Zeilen ein wenig vertauscht, und plötzlich ist alles ok. Das verstehe, wer wolle; ich definitiv nicht!!<br />
Aber Hauptsache es läuft erstmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1230781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230781</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sun, 18 Feb 2007 18:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to TEdit und TMemo lösen Fehler in vcl60.bpl aus on Mon, 19 Feb 2007 20:15:19 GMT]]></title><description><![CDATA[<p>Es wäre ja zu schön gewesen, wenn damit wirklich das Problem gelöst wäre.<br />
Schon wieder kann ich nicht auf EdHeader und MmBody zugreifen (Fehler s.o. wird ausgelöst).<br />
Diesmal konnte ich folgenden Zusammenhang feststellen: sobald ich für die genannten Komponenten eine Event-Methode schreibe (in diesem Fall OnChange, ich hab's aber auch mit anderen getestet), kann ich die Komponenten nicht mehr ansprechen, auch außerhalb der Event-Methode. Lasse ich diese Methoden weg, kann ich ganz normal zugreifen.<br />
Dummerweise müssen beide das OnChange-Event abfragen, da ich dort eine Datenklasse aktualisieren muß.</p>
<p>Kann jemand erkennen, was ich falsch mache? In anderen Anwendungen ist mir dieses Problem noch nicht begegnet.</p>
<p>Gruß,<br />
Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231514</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Mon, 19 Feb 2007 20:15:19 GMT</pubDate></item></channel></rss>