<?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[Sofort in Canvas Zeichnen]]></title><description><![CDATA[<p>Hi,<br />
Da ich in meinem Programm eine Grafik zeichnen lasse, die etwas länger dauert möchte ich gerne wissen wie man sofort Zeichnen lassen kann.<br />
Ich habe es schon Application-&gt;ProcessMessages() probiert aber damit flimmert das Image die ganze Zeit und die TrackBars zum einstellen der Werte können nicht mehr richtig verwendet werden (sie verrutschen dauernd mit der Maus als ob sie am Cursor kleben bleiben)</p>
<p>Also was kann man machen um in ein Canvas schon während der Berechnung zu zeichnen?</p>
<p>mfg PillathMrNight</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174394/sofort-in-canvas-zeichnen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 18:16:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174394.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Feb 2007 13:08:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sofort in Canvas Zeichnen on Mon, 26 Feb 2007 13:08:58 GMT]]></title><description><![CDATA[<p>Hi,<br />
Da ich in meinem Programm eine Grafik zeichnen lasse, die etwas länger dauert möchte ich gerne wissen wie man sofort Zeichnen lassen kann.<br />
Ich habe es schon Application-&gt;ProcessMessages() probiert aber damit flimmert das Image die ganze Zeit und die TrackBars zum einstellen der Werte können nicht mehr richtig verwendet werden (sie verrutschen dauernd mit der Maus als ob sie am Cursor kleben bleiben)</p>
<p>Also was kann man machen um in ein Canvas schon während der Berechnung zu zeichnen?</p>
<p>mfg PillathMrNight</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235716</guid><dc:creator><![CDATA[~PillathMrNight]]></dc:creator><pubDate>Mon, 26 Feb 2007 13:08:58 GMT</pubDate></item><item><title><![CDATA[Reply to Sofort in Canvas Zeichnen on Mon, 26 Feb 2007 13:36:16 GMT]]></title><description><![CDATA[<p>Leg das Image auf ein TPanel und setz TPanel:DoubleBuffered = true. Damit verschwindet das flackern. Allerdings ist das Zeichnen auch langsamer.</p>
<p>Alternativ könntest Du die Berechnung in einen Thread auslagern und in einem Bitmap-Objekt zwischenpuffern und dieses von Zeit zu Zeit in das Image kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235737</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 26 Feb 2007 13:36:16 GMT</pubDate></item><item><title><![CDATA[Reply to Sofort in Canvas Zeichnen on Wed, 28 Feb 2007 13:18:22 GMT]]></title><description><![CDATA[<p>Danke für Die Antwort Joe_M.<br />
Das Flimmern verschwindet wirklich wenn ich die Lösung mit dem Panel benutze aber das kann ich immer noch nicht nutzen weil ich dann wieder wegen dem Application-&gt;ProcessMessages() die Probleme mit den TrackBars bekomme (sie lassen sich nichtmehr feststellen) . Das mit den Threads habe ich auch probiert aber aus einem mir unerklärlichen Grund zeichnet der Thread nur manchmal <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="😕"
    /> . Ich werde mal weiterprobieren</p>
<p>Trotzdem danke</p>
<p>Mfg PillathMrNight</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236797</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236797</guid><dc:creator><![CDATA[~PillathMrNight]]></dc:creator><pubDate>Wed, 28 Feb 2007 13:18:22 GMT</pubDate></item><item><title><![CDATA[Reply to Sofort in Canvas Zeichnen on Wed, 28 Feb 2007 14:36:26 GMT]]></title><description><![CDATA[<p>Ich bin nicht in der Lage, das Problem mit der TrackBar nachzuvollziehen. In meinem BCB 6 klappt das. Allerdings ist es wirklich nicht besonders sinnvoll, die Berechnung im Hauptthread stattfinden zu lassen und dort permanent ProcessMessages() aufzurufen. Das funktioniert mehr schlecht als recht.</p>
<p>Ich hab grad mal nachgesehen. Du kannst aus Threads heraus direkt in einen Canvas schreiben. TCanvas verfügt über die Methoden Lock() und Unlock() zur Synchronisierung mit anderen Threads (zu denen auch der Hauptthread gehört). Die Zwischenpufferung in ein TBitmap kannst Du also getrost einsparen.</p>
<p>Ich persönlich würde allerdings die Grafik komplett berechnen und dann erst die Ausgabe machen. Das 'zwischendurch zeichnen' kostet immens viel Zeit. Ohne es ausprobiert zu haben, könnte ich mir vorstellen, dass die Berechnung dann nur noch einen Bruchteil der Zeit benötigt. Hängt aber vermutlich aber stark davon ab, was genau Du da machst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1236833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1236833</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 28 Feb 2007 14:36:26 GMT</pubDate></item></channel></rss>