<?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[[BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn]]></title><description><![CDATA[<p>hai</p>
<p>hatte bisher noch nie diesen fehler.</p>
<pre><code>[C++ Error] MainForm.cpp(97): E2459 VCL style classes must be constructed using operator new
</code></pre>
<p>erhielt ich beim compilieren des folgenden codes:</p>
<pre><code class="language-cpp">class TForm1 : public TForm
{
__published:	// IDE-managed Components
	TPaintBox *PaintBox1;

//...
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    //...
    foo-&gt;paint( PaintBox1 );   //&lt;-- Paint erwartet &amp;TPaintBox als Parameter
    //...
}
</code></pre>
<p>muss ich diese doch mit PaintBox1 = new TPaintBox im Konstruktor erstellen? dachte die vcl-componenten werden beim Form1::OnCreate() Ereigniss automatisch konstruiert, weil die buttons und so das ja auch nicht brauchen <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="😕"
    /><br />
kann mir jemand helfen??</p>
<p>danke im voraus<br />
greez</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/141536/bcb2006-e2459-vcl-style-class-construction-gt-error-den-ich-nicht-kenn</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 16:18:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/141536.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Mar 2006 19:37:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Wed, 22 Mar 2006 19:37:44 GMT]]></title><description><![CDATA[<p>hai</p>
<p>hatte bisher noch nie diesen fehler.</p>
<pre><code>[C++ Error] MainForm.cpp(97): E2459 VCL style classes must be constructed using operator new
</code></pre>
<p>erhielt ich beim compilieren des folgenden codes:</p>
<pre><code class="language-cpp">class TForm1 : public TForm
{
__published:	// IDE-managed Components
	TPaintBox *PaintBox1;

//...
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    //...
    foo-&gt;paint( PaintBox1 );   //&lt;-- Paint erwartet &amp;TPaintBox als Parameter
    //...
}
</code></pre>
<p>muss ich diese doch mit PaintBox1 = new TPaintBox im Konstruktor erstellen? dachte die vcl-componenten werden beim Form1::OnCreate() Ereigniss automatisch konstruiert, weil die buttons und so das ja auch nicht brauchen <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="😕"
    /><br />
kann mir jemand helfen??</p>
<p>danke im voraus<br />
greez</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021983</guid><dc:creator><![CDATA[Malermeister]]></dc:creator><pubDate>Wed, 22 Mar 2006 19:37:44 GMT</pubDate></item><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Wed, 22 Mar 2006 20:02:39 GMT]]></title><description><![CDATA[<p>hmm wenn ich die paint() funktion ändere und die PaintBOx als zeiger (TPaintBox1*) übergebe funzts.. <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="😞"
    /><br />
aber in all den schlauen büchern steht doch, dass man wenn möglich referenzen und nicht zeiger übergeben soll. <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="😕"
    /> <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="😕"
    /> <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/1022004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022004</guid><dc:creator><![CDATA[Malermeister]]></dc:creator><pubDate>Wed, 22 Mar 2006 20:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Thu, 23 Mar 2006 07:33:19 GMT]]></title><description><![CDATA[<p>Mit</p>
<blockquote>
<p>TPaintBox *PaintBox1;</p>
</blockquote>
<p>legst du keine Paintbox an, sondern nur einen Zeiger. Eine Paintbox wird es erst, wenn du irgendwo noch hinschreibst</p>
<p>PaintBox1=new TPaintBox(..);</p>
<p>Dann hast du eine Paintbox. Ein geeigneter Ort um das hinzuschreiben ist der Konstruktor um die Box zu löschen ist der Destruktor (anlegen!) ein guter Ort.</p>
<p>Damit die Paintbox nun auf dem Bildschirm erscheint braucht sie mindestens eine Position und ein Elternobjekt.</p>
<p><a href="http://www.marquardtnet.info/cecke/quickies.1/1_quicky_21.html" rel="nofollow">http://www.marquardtnet.info/cecke/quickies.1/1_quicky_21.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022116</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Thu, 23 Mar 2006 07:33:19 GMT</pubDate></item><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Thu, 23 Mar 2006 07:48:41 GMT]]></title><description><![CDATA[<p>eine PaintBox ist doch ne Komponente, die sollte (wenn sie per Drag'n'Drop auf das Formular gelegt wurde) automatisch von der Anwendung erzeugt werden (also keine <strong>new</strong> nötig). wenn sie von Hand in die Klasse eingetragen wurde, hat sie auch nix im <strong>published</strong>-Teil zu suchen, sondern gehört nach <strong>private</strong> oder <strong>protected</strong> und die obigen Aussagen treffen zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022133</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Thu, 23 Mar 2006 07:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Thu, 23 Mar 2006 08:27:54 GMT]]></title><description><![CDATA[<p>Malermeister schrieb:</p>
<blockquote>
<p>... aber in all den schlauen büchern steht doch, dass man wenn möglich referenzen und nicht zeiger übergeben soll.</p>
</blockquote>
<p>Die Betonung liegt hier auf <strong>wenn möglich</strong>. VCL-Objekte müssen als Pointer erzeugt und verwendet werden. Das liegt daran, dass die VCL in Pascal geschrieben ist und da funktioniert Polymorphie nur über Zeiger. Es gibt dort zwar etwas ähnliches wie Referenzen (var), dies kann aber nicht so eingesetzt werden wie bei C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022167</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 23 Mar 2006 08:27:54 GMT</pubDate></item><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Thu, 23 Mar 2006 09:20:33 GMT]]></title><description><![CDATA[<p>Sunday schrieb:</p>
<blockquote>
<p>eine PaintBox ist doch ne Komponente, die sollte (wenn sie per Drag'n'Drop auf das Formular gelegt wurde) automatisch von der Anwendung erzeugt werden (also keine <strong>new</strong> nötig). wenn sie von Hand in die Klasse eingetragen wurde, hat sie auch nix im <strong>published</strong>-Teil zu suchen, sondern gehört nach <strong>private</strong> oder <strong>protected</strong> und die obigen Aussagen treffen zu.</p>
</blockquote>
<p>eben das wunderte mich ja, hab sie als drag and drop element auf die form gezogen, also die definitions-zeile nicht selbst geschrieben.<br />
auch funktioniert die konstruktion mit <strong>new</strong> gar nicht, jedenfalls nicht mit Form1 als Owner.</p>
<p>Braunstein schrieb:</p>
<blockquote>
<p>...Das liegt daran, dass die VCL in Pascal geschrieben ist und da funktioniert Polymorphie nur über Zeiger...</p>
</blockquote>
<p>ok das macht sinn. die pointerübergabe klappt tadellos.</p>
<p>vielen dank für eure hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022202</guid><dc:creator><![CDATA[Malermeister]]></dc:creator><pubDate>Thu, 23 Mar 2006 09:20:33 GMT</pubDate></item><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Thu, 23 Mar 2006 15:17:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">foo-&gt;paint( PaintBox1 );   //&lt;-- Paint erwartet &amp;TPaintBox als Parameter
</code></pre>
<p>dann muss der Code so lauten</p>
<pre><code class="language-cpp">foo-&gt;paint( *PaintBox1 );   //&lt;-- Paint erwartet &amp;TPaintBox als Parameter
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1022429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022429</guid><dc:creator><![CDATA[case]]></dc:creator><pubDate>Thu, 23 Mar 2006 15:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Thu, 23 Mar 2006 16:35:28 GMT]]></title><description><![CDATA[<p>ne geht eben ned</p>
<p>[C++ Error] MainForm.cpp(26): E2034 Cannot convert 'TPaintBox' to 'TPaintBox *'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022488</guid><dc:creator><![CDATA[Malermeister]]></dc:creator><pubDate>Thu, 23 Mar 2006 16:35:28 GMT</pubDate></item><item><title><![CDATA[Reply to [BCB2006] E2459 VCL style class construction-&amp;gt;error den ich nicht kenn on Thu, 23 Mar 2006 16:41:58 GMT]]></title><description><![CDATA[<p>Bitte bleibt bei VCL-Klassen bei Pointern und lasst das mit den Referenzen. Das stiftet hier nur Verwirrung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1022490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1022490</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 23 Mar 2006 16:41:58 GMT</pubDate></item></channel></rss>