<?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[Wie Methode ständig aufrufen?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich portiere gerade ein Windows-C Programm nach BCB. Das Programm steuert Diaprojektoren über RS232 mit einer zeitlichen Auflösung von 100ms. Deshalb wird in der Botschaftsverarbeitungsschleife bei Ablauf einer Diaschau ständig eine Funktion aufgerufen.</p>
<pre><code class="language-cpp">while (GetMessage(&amp;msg, NULL, 0, 0))
    {
        if (!TranslateAccelerator(hwnd, hAccel, &amp;msg))
         {
          TranslateMessage(&amp;msg);
          DispatchMessage(&amp;msg);
         }

     if (bShowRunning)
       ShowRunning(hwnd);

    }
</code></pre>
<p>Wie kann denn so was prinzipiell im BCB realisiert werden, da ich ja, nach meinem Kenntnisstand, keinen Zugriff auf die Botschaftsverarbeitungsschleife habe? Muß ich das über Threads lösen? Oder starte ich die Methode ShowRunning bei Bedarf und sorge dann mit Application-&gt;ProcessMessages() dafür, das anstehende Botschaften abgearbeitet werden?</p>
<p>Grüße<br />
Gogo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/79987/wie-methode-ständig-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 09:13:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/79987.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 16 Jul 2004 08:22:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie Methode ständig aufrufen? on Fri, 16 Jul 2004 08:22:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich portiere gerade ein Windows-C Programm nach BCB. Das Programm steuert Diaprojektoren über RS232 mit einer zeitlichen Auflösung von 100ms. Deshalb wird in der Botschaftsverarbeitungsschleife bei Ablauf einer Diaschau ständig eine Funktion aufgerufen.</p>
<pre><code class="language-cpp">while (GetMessage(&amp;msg, NULL, 0, 0))
    {
        if (!TranslateAccelerator(hwnd, hAccel, &amp;msg))
         {
          TranslateMessage(&amp;msg);
          DispatchMessage(&amp;msg);
         }

     if (bShowRunning)
       ShowRunning(hwnd);

    }
</code></pre>
<p>Wie kann denn so was prinzipiell im BCB realisiert werden, da ich ja, nach meinem Kenntnisstand, keinen Zugriff auf die Botschaftsverarbeitungsschleife habe? Muß ich das über Threads lösen? Oder starte ich die Methode ShowRunning bei Bedarf und sorge dann mit Application-&gt;ProcessMessages() dafür, das anstehende Botschaften abgearbeitet werden?</p>
<p>Grüße<br />
Gogo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/561892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/561892</guid><dc:creator><![CDATA[der_Gogo]]></dc:creator><pubDate>Fri, 16 Jul 2004 08:22:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Methode ständig aufrufen? on Fri, 16 Jul 2004 08:25:37 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>wieso solltest du mit dem BCB keinen Zugriff auf die Botschaftsverwaltung haben</p>
<p>es gibt mehrer Moeglichkeiten (Threads Timer ...)<br />
(aber am besten mittels Threads)</p>
<p>Wie genau muessen den die 100ms eingehalten werden ?</p>
<p>MfG<br />
Klaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/561898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/561898</guid><dc:creator><![CDATA[KlausB]]></dc:creator><pubDate>Fri, 16 Jul 2004 08:25:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Methode ständig aufrufen? on Fri, 16 Jul 2004 09:24:17 GMT]]></title><description><![CDATA[<p>KlausB schrieb:</p>
<blockquote>
<p>wieso solltest du mit dem BCB keinen Zugriff auf die Botschaftsverwaltung haben</p>
</blockquote>
<p>Ich dachte, mit Application-&gt;Run wird das Programm gestartet und kommt erst wieder aus dieser Methode zurück wenn es beendet wurde. Bin BCB-Einsteiger <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Wie bekomme ich denn Zugriff auf die Botschaftsverwaltung? Ich bräuchte ein Stichwort für die Suche in der BCB-Hilfe.</p>
<blockquote>
<p>Wie genau muessen den die 100ms eingehalten werden?</p>
</blockquote>
<p>+-30ms sind noch ok. Bei größeren Werten sieht oder hört man den Versatz zwischen Musik und Bild, wenn die Bilder im Takt der Musik gewechselt werden. Deshalb wurde bisher als Zeitbasis auch GetTickCount und keine Timer verwendet. Die Musik liefert ein Harddiskrecordingprogramm, das über eine DLL synchronisiert wird.</p>
<p>Um nicht allzu viele Ticks zu verpassen sollte die Methode deshalb so schnell als möglich hintereinander aufgerufen werden.</p>
<p>Grüße<br />
Gogo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/561940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/561940</guid><dc:creator><![CDATA[der_Gogo]]></dc:creator><pubDate>Fri, 16 Jul 2004 09:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wie Methode ständig aufrufen? on Fri, 16 Jul 2004 09:32:21 GMT]]></title><description><![CDATA[<p>Klingt irgendwie wirklich als wäre ein Thread prädistiniert ^für die Verarbeitung deiner Funktion. Anhalten kannst du den Thread dann mittels z.B. Sleep. Als Echtzeitprioritätsthread betrieben dürftest du auch eine recht geringe Abweichung erzielen...</p>
<p>-junix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/561966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/561966</guid><dc:creator><![CDATA[junix]]></dc:creator><pubDate>Fri, 16 Jul 2004 09:32:21 GMT</pubDate></item></channel></rss>