<?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[Bitmap kopieren]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gern ein Bitmap in ein anderes Objekt kopieren, ohne dass bei Veränderung des Originals die Kopie verändert wird. Bis jetzt hab ich Canvas-&gt;Draw verwendet, dabei verändert sich aber auch die Kopie bei Manipulation des Originals.<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/84427/bitmap-kopieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 17:51:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/84427.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Aug 2004 09:13:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitmap kopieren on Mon, 30 Aug 2004 09:13:06 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gern ein Bitmap in ein anderes Objekt kopieren, ohne dass bei Veränderung des Originals die Kopie verändert wird. Bis jetzt hab ich Canvas-&gt;Draw verwendet, dabei verändert sich aber auch die Kopie bei Manipulation des Originals.<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/595008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/595008</guid><dc:creator><![CDATA[mattias]]></dc:creator><pubDate>Mon, 30 Aug 2004 09:13:06 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap kopieren on Mon, 30 Aug 2004 09:22:16 GMT]]></title><description><![CDATA[<p>mattias schrieb:</p>
<blockquote>
<p>Bis jetzt hab ich Canvas-&gt;Draw verwendet, dabei verändert sich aber auch die Kopie bei Manipulation des Originals.</p>
</blockquote>
<p>Das halte ich für ein Gerücht, zeig mal deinen Code.</p>
<p>Ansonsten kommt es darauf an, um was für &quot;Objekte&quot; es konkret geht. Zwischen zwei TImages z.B. kannst du Bilder direkt per Assign o.ä. kopieren. Davon abgesehen gibt es halt die verschiedenen TCanvas-Methoden wie z.B. CopyRect.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/595021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/595021</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 30 Aug 2004 09:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap kopieren on Mon, 30 Aug 2004 09:28:51 GMT]]></title><description><![CDATA[<p>Also die nachfolgende Methode erstellt beim ersten Eintritt eine Kopie des Originals, dann wird der Refresh Button aufgerufen der die Kopie wieder in das Original kopiert. Danach erfolgt die Manipulation des Bilds.</p>
<pre><code class="language-cpp">void __fastcall TMain::ListViewSelectItem(TObject *Sender, TListItem *Item,
      bool Selected) {
   if(!resultImageChanged) {
      backupPicClusters = new Graphics::TBitmap();
      backupPicClusters-&gt;Canvas-&gt;Draw(0,0,Main-&gt;imgClusterRes-&gt;Picture-&gt;Bitmap);
   }
   if(Item-&gt;Caption != &quot;&quot; &amp;&amp; Selected) {
      BRedrawImageClick(Sender);
      Main-&gt;imgClusterRes-&gt;Picture-&gt;Bitmap-&gt;Canvas-&gt;Draw(0,0,ClusterView::ShowCluster(
	Main-&gt;imgClusterRes-&gt;Picture-&gt;Bitmap, StrToInt(Item-&gt;Caption)));
      Main-&gt;imgClusterRes-&gt;Refresh();
      resultImageChanged = true;
   }
}

void __fastcall TMain::BRedrawImageClick(TObject *Sender)
{
   Main-&gt;imgClusterRes-&gt;Picture-&gt;Bitmap-&gt;Canvas-&gt;Draw(0,0,backupPicClusters);
   Main-&gt;imgClusterRes-&gt;Refresh();
}
</code></pre>
<p>Es wird zwar jede Veränderung angezeigt, aber die voherigen werden nicht rückgängig gemacht, sprich das Originalbild wird nicht kopiert bzw. es wird kopiert aber nicht im Zustand vor der Veränderung. Hab ich was vergessen, oder einen Denkfehler?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/595031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/595031</guid><dc:creator><![CDATA[mattias]]></dc:creator><pubDate>Mon, 30 Aug 2004 09:28:51 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap kopieren on Mon, 30 Aug 2004 11:01:59 GMT]]></title><description><![CDATA[<p>Habe jetzt nicht versucht, deine Problem nachzuvollziehen, aber wenn ich dich richtig verstehe, dann willst du das An- und Abwählen eines Items durch unterschiedliche Icons signalisieren, ähnlich der Ordnersymbole im Explorer?</p>
<p>Dafür gibt's doch extra die verschiedenen <em>...Images</em>-Eigenschaften des ListViews.<br />
Über <em>Selected</em> im <em>OnSelectItem</em> kannst du feststellen, ob das Item gerade an- (true) oder abgewählt (false) wird. Dir ist ja sicher schon aufgefallen, dass <em>OnSelectItem</em> (fast) immer zweimal hintereinander aufgerufen wird.</p>
<p>Hmmm, wenn ich's recht bedenke ist letzteres vielleicht auch die Ursache für dein ursprüngliches Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/595117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/595117</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 30 Aug 2004 11:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap kopieren on Mon, 30 Aug 2004 11:41:54 GMT]]></title><description><![CDATA[<p>das ist nicht ganz das was ich meine. wenn ich auf die liste klicke soll in einem bitmap nur ein teil in einer anderen farbe dargestellt werden, sobald ich auf ein anderes listenelement klicke, soll wiederum nur ein teil in einer anderen farbe dargestellt werden. d.h. jedes listenelement ist ein teil des bildes und soll bei auswahl im bild hervor gehoben werden. wie gesagt, ich dachte am einfachsten ist es, wenn ich den entsprechenden teil anfärbe und bevor ich die nächste auswahl anzeige, lade ich das bild aus der backup variable. mein problem ist nun, dass das backup bild die gleichen änderungen wie das anzeigebild besitzt, also wird bei mehreren nachfolgenden listenmarkierungen das bild immer voller mit der markierungsfarbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/595163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/595163</guid><dc:creator><![CDATA[mattias]]></dc:creator><pubDate>Mon, 30 Aug 2004 11:41:54 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap kopieren on Mon, 30 Aug 2004 20:53:04 GMT]]></title><description><![CDATA[<p>Wirklich verstanden habe ich dich, glaube ich, nicht, aber vielleicht hilft dir dieses Beispiel ja weiter (Form, TImage mit geladenem Bild, ListView mit ein paar Items).</p>
<p>[cpp]Graphics::TBitmap <em>backup;<br />
//---------------------------------------------------------------------------<br />
__fastcall TForm1::TForm1(TComponent</em> Owner)<br />
: TForm(Owner)<br />
{<br />
backup = new Graphics::TBitmap(); // <strong>delete</strong> nicht vergessen<br />
backup-&gt;Assign(Image1-&gt;Picture-&gt;Bitmap); // Kopie des Originals anlegen<br />
}<br />
//---------------------------------------------------------------------------<br />
void __fastcall TForm1::ListView1SelectItem(TObject *Sender,<br />
TListItem *Item, bool Selected)<br />
{<br />
if (!Selected) // beim Abwählen das Originalbild wiederherstellen<br />
Image1-&gt;Picture-&gt;Bitmap-&gt;Assign(backup);<br />
else // beim Anwählen je nach Item einen bestimmten Bereich<br />
{ // des Bildes übermalen<br />
int x = Item-&gt;Index * 20;<br />
Image1-&gt;Canvas-&gt;FillRect(Rect(x, 0, x + 30, Image1-&gt;Height));<br />
}<br />
}<br />
//---------------------------------------------------------------------------[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/595629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/595629</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 30 Aug 2004 20:53:04 GMT</pubDate></item></channel></rss>