<?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[Meine Dummheit doer Komponenten Bug?]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich nutze BlockEngine, TButton und TMemo zum Test auf CBuilder5 mit dem einzigem Update1.<br />
BlockEninge nutzt intern gdiplus.dll zur Darstellung.</p>
<p>Folgender Code verursacht bei mir eine access violation.</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
   	Block *block;
    Memo1-&gt;Clear();
    for (int i=0;i&lt;BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Count;i++)
    {
    	try
        {
            block = (Block*)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i];
            block-&gt;Left = block-&gt;Left;
            block-&gt;Top = block-&gt;Top;

            Memo1-&gt;Lines-&gt;Add(block-&gt;BlockName + &quot; - &quot; + IntToStr((int)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i]));
        }
        catch (...)
        {
        	ShowMessage(&quot;Error&quot;); // erscheint niemals
        }
    }
}
</code></pre>
<p>Mein Problem ist jetzt, das er alle Elemente ins TMemo reinsetzt, aber trotzdem einen access violation bekomme. Allerdings nur wenn ich mehr als 30 Einträge habe.<br />
Weniger haben noch nie einen Fehler produziert.<br />
Wenn ich block-&gt;Left oder block-&gt;Top rauslasse, geht es ebenfalls sauber durch.</p>
<p>Wenn ich jetzt eine Zeile einfüge mit ShowMessage(&quot;x&quot;);</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
   	Block *block;
    Memo1-&gt;Clear();
    for (int i=0;i&lt;BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Count;i++)
    {
    	try
        {
            block = (Block*)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i];
            block-&gt;Left = block-&gt;Left;
            block-&gt;Top = block-&gt;Top;

            Memo1-&gt;Lines-&gt;Add(block-&gt;BlockName + &quot; - &quot; + IntToStr((int)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i]));

ShowMessage(&quot;x&quot;); // &lt;&lt;&lt; NEW LINE

        }
        catch (...)
        {
        	ShowMessage(&quot;Error&quot;); // erscheint niemals
        }
    }
}
</code></pre>
<p>dann sehe bei jedem Durchlauf das &quot;x&quot; aber niemals eine access violation</p>
<p>Grob gesagt es scheint als ob &quot;zuschnell&quot; auf die Elemente zugefriffen wird, aber ... häää? Irgendwie check ich es nicht was das soll. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Kann mir da jemand einen Rat geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/116452/meine-dummheit-doer-komponenten-bug</link><generator>RSS for Node</generator><lastBuildDate>Thu, 23 Jul 2026 20:53:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/116452.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 Jul 2005 07:50:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 07:50:47 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich nutze BlockEngine, TButton und TMemo zum Test auf CBuilder5 mit dem einzigem Update1.<br />
BlockEninge nutzt intern gdiplus.dll zur Darstellung.</p>
<p>Folgender Code verursacht bei mir eine access violation.</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
   	Block *block;
    Memo1-&gt;Clear();
    for (int i=0;i&lt;BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Count;i++)
    {
    	try
        {
            block = (Block*)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i];
            block-&gt;Left = block-&gt;Left;
            block-&gt;Top = block-&gt;Top;

            Memo1-&gt;Lines-&gt;Add(block-&gt;BlockName + &quot; - &quot; + IntToStr((int)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i]));
        }
        catch (...)
        {
        	ShowMessage(&quot;Error&quot;); // erscheint niemals
        }
    }
}
</code></pre>
<p>Mein Problem ist jetzt, das er alle Elemente ins TMemo reinsetzt, aber trotzdem einen access violation bekomme. Allerdings nur wenn ich mehr als 30 Einträge habe.<br />
Weniger haben noch nie einen Fehler produziert.<br />
Wenn ich block-&gt;Left oder block-&gt;Top rauslasse, geht es ebenfalls sauber durch.</p>
<p>Wenn ich jetzt eine Zeile einfüge mit ShowMessage(&quot;x&quot;);</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
   	Block *block;
    Memo1-&gt;Clear();
    for (int i=0;i&lt;BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Count;i++)
    {
    	try
        {
            block = (Block*)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i];
            block-&gt;Left = block-&gt;Left;
            block-&gt;Top = block-&gt;Top;

            Memo1-&gt;Lines-&gt;Add(block-&gt;BlockName + &quot; - &quot; + IntToStr((int)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i]));

ShowMessage(&quot;x&quot;); // &lt;&lt;&lt; NEW LINE

        }
        catch (...)
        {
        	ShowMessage(&quot;Error&quot;); // erscheint niemals
        }
    }
}
</code></pre>
<p>dann sehe bei jedem Durchlauf das &quot;x&quot; aber niemals eine access violation</p>
<p>Grob gesagt es scheint als ob &quot;zuschnell&quot; auf die Elemente zugefriffen wird, aber ... häää? Irgendwie check ich es nicht was das soll. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Kann mir da jemand einen Rat geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/839649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839649</guid><dc:creator><![CDATA[stupido-san]]></dc:creator><pubDate>Wed, 27 Jul 2005 07:50:47 GMT</pubDate></item><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 08:35:34 GMT]]></title><description><![CDATA[<p>stupido-san schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Block *block;
// ...
block = (Block*)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i];
block-&gt;Left = block-&gt;Left;
block-&gt;Top = block-&gt;Top;
</code></pre>
</blockquote>
<p>Und was genau sollen diese Zeilen da jetzt bringen...?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/839677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839677</guid><dc:creator><![CDATA[Windoof]]></dc:creator><pubDate>Wed, 27 Jul 2005 08:35:34 GMT</pubDate></item><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 08:50:51 GMT]]></title><description><![CDATA[<p>Um Fehler einzugrenzen garnichts. Normal wird dann ein Wert für Left und Top übergeben. Für die Bugfindung, setzte ich es auf den selben Wert. Schlimm? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/839693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839693</guid><dc:creator><![CDATA[stupido-san]]></dc:creator><pubDate>Wed, 27 Jul 2005 08:50:51 GMT</pubDate></item><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 08:56:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">block = (Block*)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i];
</code></pre>
<p>Ich denke mal, das diese Zeile ursächlich Schuld ist. Schließlich findet bei einem harten cast keienerlei Überprüfung statt. Irgendeinen Zeiger bekommst Du so immer, aber ob er gültig ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/839703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839703</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 27 Jul 2005 08:56:26 GMT</pubDate></item><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 09:23:28 GMT]]></title><description><![CDATA[<p>Mhh, wie würde es denn besser sein? <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>Das Item ist ein TList und Typ <strong>void</strong></p>
<p>Im Auge behalten sollte man aber auch das die Werte die ich erhalte stimmen und das wenn ich ShowMessage(&quot;x&quot;) mache auch keine access violation auftritt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/839731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839731</guid><dc:creator><![CDATA[stupido-san]]></dc:creator><pubDate>Wed, 27 Jul 2005 09:23:28 GMT</pubDate></item><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 09:32:05 GMT]]></title><description><![CDATA[<p>Wenn du den Block schon casten willst, versuchs mal mit dynamic_cast</p>
<pre><code class="language-cpp">block = dynamic_cast&lt;Block*&gt;(BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i]);
if(block==NULL)
{
    ShowMessage(&quot;Cast-Error&quot;);
    return;
}

Memo1-&gt;Lines-&gt;Add(block-&gt;BlockName + &quot; - &quot; + IntToStr((int)BlockEditor1-&gt;Document-&gt;BlockRoot-&gt;Blocks-&gt;Items[i]));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/839741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839741</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Wed, 27 Jul 2005 09:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 09:40:22 GMT]]></title><description><![CDATA[<p>Mhh, dann bekomme ich aber einen Fehler.</p>
<p><em>2307 Typ ‘typ’ ist keine definierte Klasse bei virtuellen Funktionen Compiler-Fehler.<br />
Es wurde ein dynamic_cast mit einem Zeiger auf eine Klasse benutzt, die entweder undefiniert ist oder keine virtuellen Elementfunktionen besitzt.</em></p>
<p><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>
]]></description><link>https://www.c-plusplus.net/forum/post/839748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839748</guid><dc:creator><![CDATA[stupido-san]]></dc:creator><pubDate>Wed, 27 Jul 2005 09:40:22 GMT</pubDate></item><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 12:13:17 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>das liegt daran das void nicht mit dynamic_cast oder static_cast gecastet werden kann, denn es ist ein undefinierter Typ. Du must reinterpret_cast nehmen.</p>
<p>Ich würde aber lieber versuchen, das ohne void zu lösen, so das du einen sicheren cast mit Überprüfung nehmen kannst.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/839917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839917</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 27 Jul 2005 12:13:17 GMT</pubDate></item><item><title><![CDATA[Reply to Meine Dummheit doer Komponenten Bug? on Wed, 27 Jul 2005 13:05:53 GMT]]></title><description><![CDATA[<p>Ich flücke die Komponente grad auseinander und probiere rum.<br />
Also das ganze hat nichts mit dem Pointer zu tun sondern wohl warum auch immer mit Left und Top zuweisung. Ohne das läuft es ja wie mehrmals bereits gesagt sauber durch. in Left und Top wird die SetBounds() Funktion aufgeruft und dort muss der Fehler hocken.. Bin ja mal gespannt ob ich rausbekommen warum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/839990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/839990</guid><dc:creator><![CDATA[stupido-san]]></dc:creator><pubDate>Wed, 27 Jul 2005 13:05:53 GMT</pubDate></item></channel></rss>