<?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[Timer mit Ereignis synchonisieren.]]></title><description><![CDATA[<p>Da bei Sleep(1000); immer das Programm einfriert, wollte ich stattdessen einen Timer einfügen.</p>
<p>Das Problem ist jetzt, dass der Timer immer unabhängig von den anderen Codezeilen taktet.</p>
<p>Kann man es irgendwie hinkriegen den Timer zu synchronisieren?</p>
<p>Ich hab das zuerst so gelöst:</p>
<pre><code class="language-cpp">void __fastcall TClient::Timer1Timer(TObject *Sender)
{
  if(CountTimer == TIMER)
  {
    //Code
    CountTimer = 0;
  }
  CountTimer++;
}
</code></pre>
<p>Bei den Ereignissen wird dann entsprechend CountTimer = 0; gemacht.</p>
<p>Aber irgendwie ist das nicht das richtige.</p>
<p>Die Intervalle müssten dann besonders klein sein um eine bessere Synchronisation zu haben und dies führt wieder zu mehr ungenauigkeit, da TTimer ereignisgesteuert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181703/timer-mit-ereignis-synchonisieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 17:32:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181703.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 May 2007 12:41:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Timer mit Ereignis synchonisieren. on Wed, 16 May 2007 12:41:16 GMT]]></title><description><![CDATA[<p>Da bei Sleep(1000); immer das Programm einfriert, wollte ich stattdessen einen Timer einfügen.</p>
<p>Das Problem ist jetzt, dass der Timer immer unabhängig von den anderen Codezeilen taktet.</p>
<p>Kann man es irgendwie hinkriegen den Timer zu synchronisieren?</p>
<p>Ich hab das zuerst so gelöst:</p>
<pre><code class="language-cpp">void __fastcall TClient::Timer1Timer(TObject *Sender)
{
  if(CountTimer == TIMER)
  {
    //Code
    CountTimer = 0;
  }
  CountTimer++;
}
</code></pre>
<p>Bei den Ereignissen wird dann entsprechend CountTimer = 0; gemacht.</p>
<p>Aber irgendwie ist das nicht das richtige.</p>
<p>Die Intervalle müssten dann besonders klein sein um eine bessere Synchronisation zu haben und dies führt wieder zu mehr ungenauigkeit, da TTimer ereignisgesteuert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286149</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Wed, 16 May 2007 12:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to Timer mit Ereignis synchonisieren. on Wed, 16 May 2007 12:46:43 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Tobi3000 schrieb:</p>
<blockquote>
<p>Da bei Sleep(1000); immer das Programm einfriert, wollte ich stattdessen einen Timer einfügen.</p>
<p>Das Problem ist jetzt, dass der Timer immer unabhängig von den anderen Codezeilen taktet.</p>
</blockquote>
<p><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="😕"
    /> Was willst du denn noch? Entweder dein Programm wartet eine Sekunde und führt dann eine Aktion aus (sleep) oder dein Programm führt in einer Sekunde eine Aktion aus und wartet nicht darauf (TTimer).</p>
<p>Und &quot;irgendwie nicht das richtige&quot; ist auch keine ausreichende Problembeschreibung.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286154</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 16 May 2007 12:46:43 GMT</pubDate></item><item><title><![CDATA[Reply to Timer mit Ereignis synchonisieren. on Wed, 16 May 2007 13:01:52 GMT]]></title><description><![CDATA[<p>Mit Sleep(1000); meinte ich ein</p>
<pre><code class="language-cpp">while(Bedingung)
{
  //Code
  Sleep(1000);
}
</code></pre>
<p>Dies ist einfach keine richtige Lösung, weil das Programm dabei einfriert und darum hab ich Timer genommen.</p>
<p>Und warum meine Lösung nicht das Richtige ist, hab ich doch einen Satz später geschrieben.<br />
Wenn ich den Intervall zu klein mache, dann ist er wieder zu langsam und wenn ich ihn zu groß mache, dann hab ich einen zu großen Delay.</p>
<p>Optimal ist es, wenn der Timer bei einem sofort auf 0 gesetzt wird bei einem bestimmten Ereignis und der Intervall = 1000 ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286165</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Wed, 16 May 2007 13:01:52 GMT</pubDate></item><item><title><![CDATA[Reply to Timer mit Ereignis synchonisieren. on Wed, 16 May 2007 13:49:37 GMT]]></title><description><![CDATA[<p>Such mal nach Application-&gt;ProcessMessages()...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286195</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Wed, 16 May 2007 13:49:37 GMT</pubDate></item><item><title><![CDATA[Reply to Timer mit Ereignis synchonisieren. on Wed, 16 May 2007 14:40:47 GMT]]></title><description><![CDATA[<p>OK Ich hab das Problem jetzt gelöst.<br />
Ich hab in der Hilfe zufällig gefunden, dass wenn der (das ?) Interval auf 0 gesetzt ist, dass ich den Timer praktisch abschalte.<br />
Durch Rumexperimentieren hab ich herausgefunden, dass bei der Anweisung Interval = 0; der Timer auch resettet wird.</p>
<p>Das heißt also synchronisieren kann man mit:</p>
<pre><code class="language-cpp">Timer1-&gt;Interval = 0;
    Timer1-&gt;Interval = 1000;
</code></pre>
<p>Jetzt ist das Problem, dass die Funktion erst nach einer Sekunde ausgeführt wird und nicht gleich sofort.</p>
<p>Dies löst man dann indem man Timer1Timer(0); davor setzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286245</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Wed, 16 May 2007 14:40:47 GMT</pubDate></item><item><title><![CDATA[Reply to Timer mit Ereignis synchonisieren. on Wed, 16 May 2007 15:06:34 GMT]]></title><description><![CDATA[<p>Äh... Warum so umständlich? Schau mal in der Hilfe nach TTimer::Enabled.</p>
<p>Und wie Th schon meinte, scheint mir ProcessMessages in Verbindung mit while und sleep die bessere Wahl zu sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1286272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1286272</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Wed, 16 May 2007 15:06:34 GMT</pubDate></item></channel></rss>