<?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[TImage Anzeigeproblem]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich möchte verschiedene Diagramme in TImages zeichnen und diese in einen Vector schieben. Wenn ich dann auf einen Button weiter drücke, sollen diese nacheinander wieder angezeigt werden.</p>
<p>Ich habe mich nun am Beispiel von Jansen im FAQ &quot;Komponenten Benutzen&quot; orientiert. Ich möchte aber keine Bilder laden sondern diese selber zeichnen. Leider werden mir meine gezeichneten Images nicht angezeigt. was mache ich falsch?</p>
<p>Ich vermute, dass ich statt dem</p>
<pre><code>Image1-&gt;Picture-&gt;Bitmap
</code></pre>
<p>etwas anderes nehmen müsste, aber was?</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

std::vector&lt;Graphics::TBitmap*&gt; BmpVector;

//---------------------------------------------------------------------------
// Vector nach Bedarf mit Bitmap-Objekten füllen
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Graphics::TBitmap *bmp = new Graphics::TBitmap;

    // Beispiel für Textausgabe und Linie zeichnen
    bmp-&gt;Canvas-&gt;TextOutA(300,200,&quot;Hallo&quot;);
    bmp-&gt;Canvas-&gt;MoveTo(400,200);
    bmp-&gt;Canvas-&gt;LineTo(500,200);

 BmpVector.push_back(bmp);
}
//---------------------------------------------------------------------------
// durch die im Vector gelisteten Bilder blättern
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  if (Button2-&gt;Tag &gt;= BmpVector.size())
    Button2-&gt;Tag = 0;

  if (BmpVector.size())
    Image1-&gt;Picture-&gt;Bitmap = BmpVector[Button2-&gt;Tag++];
}
//---------------------------------------------------------------------------
// Bitmap-Objekte freigeben
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  int count = BmpVector.size();
  while (count)
    delete BmpVector[--count];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/202514/timage-anzeigeproblem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 08:13:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202514.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Jan 2008 12:24:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TImage Anzeigeproblem on Sat, 12 Jan 2008 12:25:09 GMT]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>ich möchte verschiedene Diagramme in TImages zeichnen und diese in einen Vector schieben. Wenn ich dann auf einen Button weiter drücke, sollen diese nacheinander wieder angezeigt werden.</p>
<p>Ich habe mich nun am Beispiel von Jansen im FAQ &quot;Komponenten Benutzen&quot; orientiert. Ich möchte aber keine Bilder laden sondern diese selber zeichnen. Leider werden mir meine gezeichneten Images nicht angezeigt. was mache ich falsch?</p>
<p>Ich vermute, dass ich statt dem</p>
<pre><code>Image1-&gt;Picture-&gt;Bitmap
</code></pre>
<p>etwas anderes nehmen müsste, aber was?</p>
<pre><code class="language-cpp">#include &lt;vector&gt;

std::vector&lt;Graphics::TBitmap*&gt; BmpVector;

//---------------------------------------------------------------------------
// Vector nach Bedarf mit Bitmap-Objekten füllen
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 Graphics::TBitmap *bmp = new Graphics::TBitmap;

    // Beispiel für Textausgabe und Linie zeichnen
    bmp-&gt;Canvas-&gt;TextOutA(300,200,&quot;Hallo&quot;);
    bmp-&gt;Canvas-&gt;MoveTo(400,200);
    bmp-&gt;Canvas-&gt;LineTo(500,200);

 BmpVector.push_back(bmp);
}
//---------------------------------------------------------------------------
// durch die im Vector gelisteten Bilder blättern
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  if (Button2-&gt;Tag &gt;= BmpVector.size())
    Button2-&gt;Tag = 0;

  if (BmpVector.size())
    Image1-&gt;Picture-&gt;Bitmap = BmpVector[Button2-&gt;Tag++];
}
//---------------------------------------------------------------------------
// Bitmap-Objekte freigeben
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
  int count = BmpVector.size();
  while (count)
    delete BmpVector[--count];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1435347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435347</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Sat, 12 Jan 2008 12:25:09 GMT</pubDate></item><item><title><![CDATA[Reply to TImage Anzeigeproblem on Sat, 12 Jan 2008 12:47:57 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Das eigentliche Problem dürfte sein das du dem neu erstellten Bitmaps vor den Zeichenoperationen keine Dimension zuweist. Das heißt alle Bitmaps haben eine Größe von 0x0 Pixeln. Und deshalb wird auch nichts dargestellt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435363</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 12 Jan 2008 12:47:57 GMT</pubDate></item><item><title><![CDATA[Reply to TImage Anzeigeproblem on Sat, 12 Jan 2008 12:57:34 GMT]]></title><description><![CDATA[<p>Super, das wars.</p>
<p>Danke<br />
egcactus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1435365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1435365</guid><dc:creator><![CDATA[egcactus]]></dc:creator><pubDate>Sat, 12 Jan 2008 12:57:34 GMT</pubDate></item><item><title><![CDATA[Reply to TImage Anzeigeproblem on Mon, 14 Jan 2008 08:11:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int count = BmpVector.size();
  while (count)
    delete BmpVector[--count];
</code></pre>
<p>Reicht hier nicht einfach diese Zeile?</p>
<pre><code class="language-cpp">delete BmpVector[];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1436200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1436200</guid><dc:creator><![CDATA[Gurkentyp]]></dc:creator><pubDate>Mon, 14 Jan 2008 08:11:10 GMT</pubDate></item><item><title><![CDATA[Reply to TImage Anzeigeproblem on Mon, 14 Jan 2008 08:16:39 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Nein das reicht nicht. Dieser Aufruf wäre für ein dynamisches C-Array richtig (und nur für das Array, nicht für die Instanzen hinter den Pointern), nicht aber für einen std::vector.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1436201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1436201</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 14 Jan 2008 08:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to TImage Anzeigeproblem on Mon, 14 Jan 2008 09:11:50 GMT]]></title><description><![CDATA[<p>Der Aufruf wäre auch für ein C-Array nicht richtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1436221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1436221</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 14 Jan 2008 09:11:50 GMT</pubDate></item></channel></rss>