<?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[UpDown Button soll den Focus verlieren...]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>entschuldigt bitte vorab wegen dem ungenauen Titel, aber mir ist nichts besseres eingefallen.</p>
<p>Zum Problem:</p>
<p>Auf meinem Formular ist ein StringGrid. Darunter ist ein UpDown Button plaziert. Mit diesem UpDown Button kann man Zeilen dem StringGrid hinzufügen, bzw. aus diesem entfernen. Entfernen wird nur akzeptiert, falls die komplette Zeile leer ist. Ist dies nicht der Fall gebe ich eine Meldung aus.</p>
<p>(Es wird immer die letzte Zeile gelöscht, bzw. eine letzte Zeile eingefügt)</p>
<p>Der Fall: &quot;Lösche Zeile wenn nicht komplett geleert&quot; macht Probleme. Die Fehlermeldung erscheint wie gewüscht. Nur leider verliert der UpDown Button den Focus nicht. Wenn ich jetzt mit der Maus in das betreffene Feld des StringGrids gehe um es zu leeren, wird automatisch wieder das UpDownClick Event ausgelöst.</p>
<pre><code class="language-cpp">void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
{
 int Zeile = StringGrid1-&gt;RowCount - 1;

 switch (Button) {

     case btNext: if (Zeile == 1) return;
                  if (Zeile_leer(Zeile))
                      this-&gt;StringGrid1-&gt;RowCount = this-&gt;StringGrid1-&gt;RowCount - 1;
                  else MessageBox(this-&gt;Handle,&quot;Nur komplett geleerte Zeilen können gelöscht werden&quot;,
                                  &quot;Anwendung&quot;,MB_ICONWARNING|MB_APPLMODAL);
                  break;

     case btPrev: this-&gt;StringGrid1-&gt;RowCount = this-&gt;StringGrid1-&gt;RowCount - 1;
                  break;

     default:;}
}

//------------------------------------------------------------------------------

bool __fastcall TForm1::Zeile_leer(int &amp;Zeile)
{
 bool leer         = true;
 int spaltenanzahl = this-&gt;StringGrid1-&gt;ColCount;

 for (int i = 0; i &lt; spaltenanzahl; i++) {

      if (!this-&gt;StringGrid1-&gt;Cells[i][Zeile].IsEmpty()) {leer = false; break;}}

 return leer; 

}
</code></pre>
<p>Ich habe schon versucht, den Focus auf ein anderes Objekt zu legen, aber anscheinend liegt es nicht daran. Das Problem tritt auf nur dann auf, falls versucht wird, eine nicht-leere Zeile zu löschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210287/updown-button-soll-den-focus-verlieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 19:11:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210287.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Apr 2008 13:47:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 13:47:15 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>entschuldigt bitte vorab wegen dem ungenauen Titel, aber mir ist nichts besseres eingefallen.</p>
<p>Zum Problem:</p>
<p>Auf meinem Formular ist ein StringGrid. Darunter ist ein UpDown Button plaziert. Mit diesem UpDown Button kann man Zeilen dem StringGrid hinzufügen, bzw. aus diesem entfernen. Entfernen wird nur akzeptiert, falls die komplette Zeile leer ist. Ist dies nicht der Fall gebe ich eine Meldung aus.</p>
<p>(Es wird immer die letzte Zeile gelöscht, bzw. eine letzte Zeile eingefügt)</p>
<p>Der Fall: &quot;Lösche Zeile wenn nicht komplett geleert&quot; macht Probleme. Die Fehlermeldung erscheint wie gewüscht. Nur leider verliert der UpDown Button den Focus nicht. Wenn ich jetzt mit der Maus in das betreffene Feld des StringGrids gehe um es zu leeren, wird automatisch wieder das UpDownClick Event ausgelöst.</p>
<pre><code class="language-cpp">void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
{
 int Zeile = StringGrid1-&gt;RowCount - 1;

 switch (Button) {

     case btNext: if (Zeile == 1) return;
                  if (Zeile_leer(Zeile))
                      this-&gt;StringGrid1-&gt;RowCount = this-&gt;StringGrid1-&gt;RowCount - 1;
                  else MessageBox(this-&gt;Handle,&quot;Nur komplett geleerte Zeilen können gelöscht werden&quot;,
                                  &quot;Anwendung&quot;,MB_ICONWARNING|MB_APPLMODAL);
                  break;

     case btPrev: this-&gt;StringGrid1-&gt;RowCount = this-&gt;StringGrid1-&gt;RowCount - 1;
                  break;

     default:;}
}

//------------------------------------------------------------------------------

bool __fastcall TForm1::Zeile_leer(int &amp;Zeile)
{
 bool leer         = true;
 int spaltenanzahl = this-&gt;StringGrid1-&gt;ColCount;

 for (int i = 0; i &lt; spaltenanzahl; i++) {

      if (!this-&gt;StringGrid1-&gt;Cells[i][Zeile].IsEmpty()) {leer = false; break;}}

 return leer; 

}
</code></pre>
<p>Ich habe schon versucht, den Focus auf ein anderes Objekt zu legen, aber anscheinend liegt es nicht daran. Das Problem tritt auf nur dann auf, falls versucht wird, eine nicht-leere Zeile zu löschen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489127</guid><dc:creator><![CDATA[StefanN]]></dc:creator><pubDate>Wed, 09 Apr 2008 13:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 14:02:29 GMT]]></title><description><![CDATA[<p>Du hast den Focus vor Aufruf der MessageBox auf ein anderes Objekt gelenkt und trotzdem wird der UpDown-Event ausgelöst?<br />
Hast du diesen Event evtl. irgendwo anders (z.Bsp. im Stringgrid) mit eingetragen?<br />
Weiterhin:<br />
Sollte bei einem von beiden case-Zweigen nicht ein + stehen?<br />
Man könnte deine Funktion noch etwas optimieren.</p>
<pre><code class="language-cpp">bool __fastcall TForm1::Zeile_leer(int Zeile) //Wozu eine Referenz?
{
  int spaltenanzahl = StringGrid1-&gt;ColCount;
  for (int i = 0; i &lt; spaltenanzahl; i++)
      if (!StringGrid1-&gt;Cells[i][Zeile].IsEmpty()) return false; //ist ja schon nicht leer
  return true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1489145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489145</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 09 Apr 2008 14:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 14:27:02 GMT]]></title><description><![CDATA[<p>Hallo Braunstein,</p>
<p>egal ob ich vor der MessageBox oder danach den Focus auf ein anderes Objekt lege, bleibt der UpDown Button aktiv. Selbst wenn augenscheinlich wirklich der Focus auf einem anderen Objekt liegt.</p>
<p>Die beiden Funktionen werden ausschließlich und nur für das UpDown1Click Event genutzt, von keinem anderen Objekt sonst.</p>
<p>Das Problem tritt aber nur auf, falls man versucht eine nichtleere Zeile zu löschen.</p>
<p>-- Im zweiten Fall habe ich + mit - verwechselt -- <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="🙄"
    /><br />
-- Warum ich die Zeile by referece übergebe und nicht by value? Darüber habe ich mir keine Gedanken gemacht, aber ich denke schaden sollte es nicht, oder? --</p>
<p>Aber das eigentliche Problem ist ja der Focus vom UpDown Button. Vielleicht kann ja jemand das ganze mal austesten und sagen, ob er das Problem (was wirklich ein Problem für mich darstellt) reproduzieren kann. Das wäre supi <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489165</guid><dc:creator><![CDATA[StefanN]]></dc:creator><pubDate>Wed, 09 Apr 2008 14:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 14:38:47 GMT]]></title><description><![CDATA[<p>Du kannst mir das Projekt ja mal schicken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489176</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 09 Apr 2008 14:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 14:57:03 GMT]]></title><description><![CDATA[<p>Ich habe gerade ein Testprojekt (BCB2007) erstellt. Das könnte ich dir schicken? Nur die .exe oder auch Source-Code?</p>
<p>Falls du noch Interesse hast drüber zu gucken, sag mir bescheid wo ich das ganze hinschicken kann. Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489184</guid><dc:creator><![CDATA[StefanN]]></dc:creator><pubDate>Wed, 09 Apr 2008 14:57:03 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 15:03:09 GMT]]></title><description><![CDATA[<p>Schicke bitte das Projekt. Also den Source-Code und die Projektdatei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489188</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 09 Apr 2008 15:03:09 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 15:09:00 GMT]]></title><description><![CDATA[<p>Oki...Aber an welche Adresse?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489193</guid><dc:creator><![CDATA[StefanN]]></dc:creator><pubDate>Wed, 09 Apr 2008 15:09:00 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 15:13:47 GMT]]></title><description><![CDATA[<p>Steht in meinem Profil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489195</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 09 Apr 2008 15:13:47 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 15:17:52 GMT]]></title><description><![CDATA[<p>Da hab ich schon geguckt. Aber ich sehe die Adresse nicht, sondern kann nur über einen Hyperlink &quot;E-Mail senden&quot; eine Nachricht verschicken. Dazu müsste ich hier aber Mitglied sein, was ich nicht bin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Wenn du sie hier nicht veröffentlichen möchtest, dann schicke mir doch bitte eine Mail an: <a href="mailto:alpha60@freenet.de" rel="nofollow">alpha60@freenet.de</a> und ich antworte dann darauf und schicke die Dateien mit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489202</guid><dc:creator><![CDATA[StefanN]]></dc:creator><pubDate>Wed, 09 Apr 2008 15:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Thu, 10 Apr 2008 08:01:25 GMT]]></title><description><![CDATA[<p>Hallo nochmal,</p>
<p>Ich habe mir jetzt dein Projekt mal angeschaut. Der Fehler liegt im Verhalten von TUpDow. Wenn du dort mit der Maus drauf klickst übernimmt TUpDown mit SetCapture die Maus bis sie wieder losgelassen wird. Dazwischen werden alle Mausklicks zu TUpDow umgeleitet. Dadurch sollen solche Sachen wie das Ziehen der Maus bei gedrückter Taste in weitere Klickevents umgesetzt werden.<br />
Das Problem hier ist nun, dass du im OnClick-Event ein neues Fenster anzeigst (MessageBox). Dadurch verliert TUpDown den Fokus und der MouseUp-Event wird nicht mehr ausgewertet. Somit wird die eingefangene Maus nicht mehr freigegeben und reagiert auf jeden weiteren Klick. Ein ReleaseCapture in der Funktion ändert daran auch nichts.<br />
Du darfst also innerhalb des OnClick-Events von UpDown kein anderes Fenster anzeigen.<br />
Ein mögliche Lösung wäre es nun, statt in OnClick, in OnMouseUp zu reagieren. Da ist ja dann die Maus wieder freigegeben. Du musst dir natürlich vorher noch merken welche Taste gedrückt wurde. Ich habe das in dem Projekt von dir über eine private Variable der Form gemacht. Die wird in OnClick gesetzt und in OnMouseUp ausgewertet.<br />
Ich schicke dir eine geänderte Version des Projektes zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489298</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 10 Apr 2008 08:01:25 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Wed, 09 Apr 2008 22:02:55 GMT]]></title><description><![CDATA[<p>Hallo Braunstein,</p>
<p>danke für deine tolle Hilfe und die Mühe die du dir damit gemacht hast.</p>
<p>Habe das geänderte Projekt erhalten und getestet. Funktioniert einwandfrei, so wie ich es mir vorgestellt hatte.</p>
<p>Liebe Grüße<br />
Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489422</guid><dc:creator><![CDATA[StefanN]]></dc:creator><pubDate>Wed, 09 Apr 2008 22:02:55 GMT</pubDate></item><item><title><![CDATA[Reply to UpDown Button soll den Focus verlieren... on Thu, 10 Apr 2008 08:14:29 GMT]]></title><description><![CDATA[<p>@StefanN: Editiere mal deinen Eintrag mit der email-adresse und lösch sie raus... Deine Wohnadresse schreibst du doch auch nicht mit der Spraydose ans Bahnhofsgebäude oder? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489503</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Thu, 10 Apr 2008 08:14:29 GMT</pubDate></item></channel></rss>