<?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[Bilder flimmern bei Bewegung]]></title><description><![CDATA[<p>Hallo da drausen,</p>
<p>ich habe jetzt schon geraume Zeit die Suche durchwälzt zum Thema Double Buffering etc. Mein Problem ist das ich eine Bild (TImage) durch die Cursortasten(VK_UP, VK_DOWN) auf der Form bewegen will. Das geht auch soweit problemlos. Problem ist das es flackert. Also doch nicht ganz problemlos.<br />
Durch die Suchfunktion dieser Page bin ich auf Double Buffering gekommen, allerdings habe ich keine Ahnung wie ich das in die oben beschriebene Struktur einbauen soll. Kann mir von euch da jemand helfen? Suche schon recht lang nach ner Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/89385/bilder-flimmern-bei-bewegung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 22:41:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/89385.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Oct 2004 10:13:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bilder flimmern bei Bewegung on Tue, 19 Oct 2004 10:13:06 GMT]]></title><description><![CDATA[<p>Hallo da drausen,</p>
<p>ich habe jetzt schon geraume Zeit die Suche durchwälzt zum Thema Double Buffering etc. Mein Problem ist das ich eine Bild (TImage) durch die Cursortasten(VK_UP, VK_DOWN) auf der Form bewegen will. Das geht auch soweit problemlos. Problem ist das es flackert. Also doch nicht ganz problemlos.<br />
Durch die Suchfunktion dieser Page bin ich auf Double Buffering gekommen, allerdings habe ich keine Ahnung wie ich das in die oben beschriebene Struktur einbauen soll. Kann mir von euch da jemand helfen? Suche schon recht lang nach ner Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/632262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/632262</guid><dc:creator><![CDATA[Myrätsel]]></dc:creator><pubDate>Tue, 19 Oct 2004 10:13:06 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder flimmern bei Bewegung on Tue, 19 Oct 2004 10:57:44 GMT]]></title><description><![CDATA[<p>Mit der Suchenfunktion findet man ganz viel. Am Besten find ich den Beitrag:<br />
<a href="http://c-plusplus.net/forum/viewtopic.php?t=14713" rel="nofollow">http://c-plusplus.net/forum/viewtopic.php?t=14713</a></p>
<p>Falls du nicht mit deinem Ergebnis zu frieden schau mal hier:<br />
<a href="http://www.winapi.net/index.php?inhalt=tipp4" rel="nofollow">http://www.winapi.net/index.php?inhalt=tipp4</a></p>
<p>mit beiden zusammen hast du dann kein Flackern mehr(zumindest ist das bi mir so)</p>
<p>mfg. FlyingDragon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/632298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/632298</guid><dc:creator><![CDATA[FlyingDragon]]></dc:creator><pubDate>Tue, 19 Oct 2004 10:57:44 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder flimmern bei Bewegung on Tue, 19 Oct 2004 11:04:42 GMT]]></title><description><![CDATA[<p>Erst mal Danke für die schnelle Antwort.</p>
<p>Allerdings kenne ich beide Beispiele. Ich denke das es an meiner unwissenheit liegt das ich nicht verstehe wie ich das in in meinen Ablauf einbauen soll. muss ich das irgenwie zwischen ´das Tastaur Event VK_UP und dem Befehl<br />
Image1-&gt;Top = Image1-&gt;Top + 10 schreiben oder wie soll das gehen. Am Besten wäre ein Beispiel wie man das mit dieser Methode macht. Sofern das überhaupt so machbar ist. Mit WM_Paint und konsorten habe ich noch nichts zu tun gehabt.<br />
Die Benutze ich auch nicht für mein Programm</p>
]]></description><link>https://www.c-plusplus.net/forum/post/632303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/632303</guid><dc:creator><![CDATA[Myrätsel]]></dc:creator><pubDate>Tue, 19 Oct 2004 11:04:42 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder flimmern bei Bewegung on Tue, 19 Oct 2004 11:35:41 GMT]]></title><description><![CDATA[<p>Hast du das Bild schon auf dein Fenster blitten können? Wenn ja, dann brauchst du den Code nur zwichen den Abschnit schreiben, wo du das Bild blittest.</p>
<p>Ich würde es so machen:</p>
<p>Zuerst einen Timer erstellen, z.B. mit eine Interval von 50ms. Dann würde ich ein Feld anlegen in dem ich den Tastaturstatus speichere. Jedes mal wenn der Timer aufgerufen wird, schauen welche Taste gedrückt wurde (im Feld nachschauen ob TRUE), und dann das Bild bewegen. Danach würde ich mit Invalidate() das Fenster auffordern neu zu zeichnen. Im Event WM_PAINT dann dein Bild mit Doublebuffering zeichnen.</p>
<p>Hier ein bissl Code:</p>
<pre><code>BOOL g_Keys[255];
const in MyTimer = 1;
...
case WM_CREATE:
    SetTimer(hWnd, myTimer, 50, NULL);
...

case WM_TIMER:
    //dein Bild bewegen
    if(g_Keys[VK_UP])
    {
        //z.B. Image.y -= 10;
    }

    InvalidateRect(hWnd,0,TRUE); //Fenster auffordern neu zu zeichnen
....

case WM_PAINT:
    RECT rcClient;
    PAINTSTRUCT ps;
    BITMAP bm;

    GetClientRect(hWnd, &amp;rcClient);
    HDC hDC = BeginPaint(hWnd, &amp;ps);

        //Doublepuffering - Einen &quot;Backbuffer&quot; erstellen
    HDC hDC2 = CreateCompatibleDC(hDC);
    HBITMAP hBM = CreateCompatibleBitmap(hDC, rcClient.right, rcClient.bottom);
    SelectObject(hDC2, hBM);

    ...
    //Dein Bild zeichnen
    ...

    BitBlt(hDC,0,0, rcClient.right, rcClient.bottom, hDC2, 0,0, SRCCOPY);
    DeleteObject(hBM);
    DeleteDC(hDC2);
    EndPaint(hWnd,&amp;ps);
...
case WM_ERASEBKGND:
      return (1); // Rückgabe muss ungleich &quot;0&quot; sein!
...
case WM_KEYDOWN:
{
    //Taste wurde gedrückt
    g_Keys[wParam] = TRUE;
    return 0;
}

case WM_KEYUP:
{
    //Taste wurde losgelasen
    g_Keys[wParam] = FALSE;
    return 0;
}

case WM_CLOSE:
    //Timer wieder löschen
    KillTimer(hWnd, ID_TIMER);
    DestroyWindow(hWnd);
    ...
</code></pre>
<p>So wie ich das machen, würde das Bild sich auf jedem System gleichschnell bewegen, weil es immer 50ms wartet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/632321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/632321</guid><dc:creator><![CDATA[FlyingDragon]]></dc:creator><pubDate>Tue, 19 Oct 2004 11:35:41 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder flimmern bei Bewegung on Tue, 19 Oct 2004 12:03:41 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7386">@FlyingDragon</a><br />
Ich glaub nicht das er damit klar kommt, er arbeitet mit BCB und ohne WndProc Funktion</p>
<p>Benutze mal die Suche im BCB Forum, auch mit dem begriff Spiel etc. da wurde das auch schon besprochen und halt mit BCB Komponenten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/632360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/632360</guid><dc:creator><![CDATA[MiC++ha]]></dc:creator><pubDate>Tue, 19 Oct 2004 12:03:41 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder flimmern bei Bewegung on Wed, 20 Oct 2004 15:43:48 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=5724" rel="nofollow">flenders</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=2" rel="nofollow">Borland C++ Builder (VCL/CLX)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/633462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/633462</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 20 Oct 2004 15:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to Bilder flimmern bei Bewegung on Wed, 20 Oct 2004 16:24:54 GMT]]></title><description><![CDATA[<p>Seit BCB6 verfügen (fast?) alle von TWinControl abgeleiteten Objekte über die Eigenschaft <em>DoubleBuffered</em>, die sich zur Laufzeit setzen lässt. Da dann alles zweimal gezeichnet wird hat das natürlich Auswirkungen auf die Performance, du solltest die Option also auf einen möglichst kleinen Bereich beschränken. D.h. z.B. das Image auf ein Panel setzen, anstatt <em>DoubleBuffered</em> für die ganze Form zu aktivieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/633516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/633516</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Wed, 20 Oct 2004 16:24:54 GMT</pubDate></item></channel></rss>