<?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[TrackBar2Change() - Aufrufe]]></title><description><![CDATA[<p>Ich hab da ein Problem mit einer TrackBar, wenn ich einmal drauf klicke, dann wird die Funktion Change() 2x aufgerufen. Weiß jemand warum das so ist? Ich habe einfach nur eine TrackBar auf ein Form gebracht, habe den Event OnChange eingeschalten und wenn ich das dann teste, kommt der Aufruf der Funktion 2x! Ist das normal oder wie kann man das beheben?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/78513/trackbar2change-aufrufe</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 18:54:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/78513.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Jul 2004 07:01:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Fri, 02 Jul 2004 07:01:13 GMT]]></title><description><![CDATA[<p>Ich hab da ein Problem mit einer TrackBar, wenn ich einmal drauf klicke, dann wird die Funktion Change() 2x aufgerufen. Weiß jemand warum das so ist? Ich habe einfach nur eine TrackBar auf ein Form gebracht, habe den Event OnChange eingeschalten und wenn ich das dann teste, kommt der Aufruf der Funktion 2x! Ist das normal oder wie kann man das beheben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/551460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551460</guid><dc:creator><![CDATA[Sonnenschein84]]></dc:creator><pubDate>Fri, 02 Jul 2004 07:01:13 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Fri, 02 Jul 2004 11:55:24 GMT]]></title><description><![CDATA[<p>Meines Wissens ist das ein seit langem bestehendes &quot;Feature&quot; der TrackBar in Delphi und BCB, die MouseDown- und MouseUp-Bewegungen lösen ungewollt das OnChange-Event aus.</p>
<p>Als Workaround könntest du die Position in einer eigenen Variablen speichern. Diese wertest du im OnChange aus und reagierst nur bei tatsächlichen Positionsänderungen.<br />
Oder du suchst dir bei <a href="http://torry.net" rel="nofollow">torry.net</a> o.ä. gleich eine vernünftige TrackBar-Komponente. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/551650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551650</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Fri, 02 Jul 2004 11:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Fri, 02 Jul 2004 12:09:35 GMT]]></title><description><![CDATA[<p>Ist ja in Ordnung wenn ich einmal klicke das das Ereignis springt. Doch nicht mehrmals hinter einander. Wenn ich nämlich dann in der TrackBar mit den -&gt; Tasten arbeite, dann wird das auch nur einmal aufgerufen und nicht mehrmals. also irgendwie versteh ich das nicht so ganz!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/551663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551663</guid><dc:creator><![CDATA[Sonnenschein84]]></dc:creator><pubDate>Fri, 02 Jul 2004 12:09:35 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Fri, 02 Jul 2004 12:32:31 GMT]]></title><description><![CDATA[<p>&quot;Feature&quot; == Bug<br />
Ich dachte, das wäre verständlich!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/551685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551685</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Fri, 02 Jul 2004 12:32:31 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Fri, 02 Jul 2004 12:34:10 GMT]]></title><description><![CDATA[<p>nein war es nicht, aber danke jetzt weiß ich was du meinst!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/551686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/551686</guid><dc:creator><![CDATA[Sonnenschein84]]></dc:creator><pubDate>Fri, 02 Jul 2004 12:34:10 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Mon, 05 Jul 2004 06:36:40 GMT]]></title><description><![CDATA[<p>Irgendwie funktioniert das bei mir mit der Variable merken und auswarten noch nicht so wirklich.</p>
<pre><code>void __fastcall TForm1::TrackBar3Change(TObject *Sender)
{
  if(Position() == TrackBar3-&gt;Position)
  {
    int Step            = 2;
    int Tmp             = TrackBar3-&gt;Position;
    Tmp                 = (Tmp - (Tmp % Step));
    TrackBar3-&gt;Position = Tmp;
    Edit2-&gt;Text         = (StrToInt(Edit2-&gt;Text) + Tmp);
  }
}
//----------------------------------------------------
int TForm1::Position(void)
{
  int Position = TrackBar3-&gt;Position;
  return Position;
}
</code></pre>
<p>Kann mir bitte jemand sagen was ich falsch mache? Ist mit Sicherheit eine ziemlich bescheuerte Frage, aber ich weiß einfach nicht weiter!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/553330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/553330</guid><dc:creator><![CDATA[Sonnenschein84]]></dc:creator><pubDate>Mon, 05 Jul 2004 06:36:40 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Mon, 05 Jul 2004 06:49:17 GMT]]></title><description><![CDATA[<p>Sehr... <em>interessante</em> Lösung... <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 soll den die Funktion da? Die gibt die Position zurück und die ist ja immer gleich der Position. Somit trifft deine Bedingung immer zu.</p>
<p>Du musst dir doch nur ne <strong>globale</strong> Variable merken... Oder im Trackbar-&gt;Tag.</p>
<pre><code class="language-cpp">void __fastcall TForm1::TrackBar3Change(TObject *Sender)
{
  if(TrackBar3-&gt;Position != TrackBar3-&gt;Tag)
  {
    TrackBar3-&gt;Tag = TrackBar3-&gt;Position;
    //Was auch immer du nur einmal machen willst: hier hin.
  }
}
</code></pre>
<p>Ich hoffe mal, dass es so klappt. Bin mir aber nicht sicher... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/553333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/553333</guid><dc:creator><![CDATA[Plemplem]]></dc:creator><pubDate>Mon, 05 Jul 2004 06:49:17 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Mon, 05 Jul 2004 07:09:13 GMT]]></title><description><![CDATA[<p>ich versuchs mal mit so einer Komponente von <a href="http://torry.net" rel="nofollow">torry.net</a> ! in welches Verzeichnis muss ich dann die Dateien: ExTrackBar.pas und ExTrackBar.res hinkopieren! Hab da keine wirklich Ahnung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/553338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/553338</guid><dc:creator><![CDATA[Sonnenschein84]]></dc:creator><pubDate>Mon, 05 Jul 2004 07:09:13 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Mon, 05 Jul 2004 11:58:58 GMT]]></title><description><![CDATA[<p>Was hat das mit dem Thema des Threads zu tun?<br />
Zum Installieren von Komponenten gibt es einen eigenen <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39305" rel="nofollow">FAQ</a>-Beitrag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/553555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/553555</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 05 Jul 2004 11:58:58 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Mon, 05 Jul 2004 12:35:21 GMT]]></title><description><![CDATA[<p>Hat sich sowieso erledigt. Nichts von dem nützt mir etwas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/553580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/553580</guid><dc:creator><![CDATA[Sonnenschein84]]></dc:creator><pubDate>Mon, 05 Jul 2004 12:35:21 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Mon, 05 Jul 2004 14:19:04 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Sonnenschein84 schrieb:</p>
<blockquote>
<p>Hat sich sowieso erledigt. Nichts von dem nützt mir etwas.</p>
</blockquote>
<p>hast du den Beitrag vom plemplem einmal versucht<br />
schaut doch ganz gut aus oder</p>
<p>MfG<br />
Klaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/553666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/553666</guid><dc:creator><![CDATA[KlausB]]></dc:creator><pubDate>Mon, 05 Jul 2004 14:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Tue, 06 Jul 2004 06:38:14 GMT]]></title><description><![CDATA[<p>Es wird sich wohl nicht vermeiden lassen, dass die Routine mehrfach aufgerufen wird. Mit Plemplems Methode lassen sich zumindest die doppelten Aufrufe für die gleiche Position abfangen. Allerdings wird die Methode für alle Positionen zwischendurch aufgerufen.</p>
<p>Um das zu umgehen kann ich folgende Lösungsvorschläge anbieten:</p>
<p>1. Den Code in OnExit() ausführen.</p>
<p>2. In Ahnlehnung an Plemplems Code, jedoch mit zwei globalen Variablen (int itbCurPos, itbLastPos):</p>
<pre><code class="language-cpp">if (itbCurPos == TrackBar1-&gt;Position)
{
	if (itbLastPos != itbCurPos)
	{
		// Hier Deinen Code einfügen
		itbLastPos = itbCurPos;
	}
}
itbCurPos = TrackBar1-&gt;Position;
</code></pre>
<p>Ich hab' das nur kurz getestet und auch nur im Debug-Mode, aber da funktioniert es...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554153</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 06 Jul 2004 06:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Tue, 06 Jul 2004 13:53:32 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<p>Allerdings wird die Methode für alle Positionen zwischendurch aufgerufen.</p>
</blockquote>
<p>Ist das nicht Sinn und Zweck einer TrackBar? Wenn ich einen Lautstärkeregler hoch- und runterziehe erwarte ich doch auch, dass sich die Lautstärke während des Ziehens ändert, nicht erst beim Loslassen!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554493</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Tue, 06 Jul 2004 13:53:32 GMT</pubDate></item><item><title><![CDATA[Reply to TrackBar2Change() - Aufrufe on Tue, 06 Jul 2004 14:34:28 GMT]]></title><description><![CDATA[<p>Jansen schrieb:</p>
<blockquote>
<p>Wenn ich einen Lautstärkeregler hoch- und runterziehe erwarte ich doch auch, dass sich die Lautstärke während des Ziehens ändert, nicht erst beim Loslassen!?</p>
</blockquote>
<p>Ja. Da bin ich wohl etwas am Ziel vorbei geschossen... Sorry. In dem Fall ist natürlich Plemplems Lösungsvorschlag des Rätsels Lösung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/554545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/554545</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 06 Jul 2004 14:34:28 GMT</pubDate></item></channel></rss>