<?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[bei Form-&amp;gt;Show() ändert sich einfach mein RadioButton-&amp;gt;Checked]]></title><description><![CDATA[<p>hallo,<br />
ich habe folgendes mir unerklärliches Verhalten in meiner anwendung:<br />
Ich habe zwei RadioButtons in einer GroupBox, die nicht gleichzeitig gesetzt werden können.<br />
wenn ich auf einen radiobutton klicke und z.B. in der OnClick-Methode den anderen RadioButton auf Checked = true setze, dann setzt der erste RadioButton beim Aufruf von Form-&gt;Show in der Ereignisbehandlungsroutine meines TrayIcons seine Checked-Property auf true!<br />
Reihenfolge wie folgt:</p>
<pre><code class="language-cpp">// Click auf Radiobutton ruft:
void __fastcall SubmitAllAndQuit(TObject *Sender)
{
     // PCS_NO_ACTION verhindert die Ausführung des folg. Codes
     if( ((TControl*)Sender)-&gt;Tag == PCS_NO_ACTION ) return; 
     bool* Restart = new bool;
     *Restart = true;
     TErrorPopup* ErrorPopup = new TErrorPopup(this);
     //hier wird ein neues Dialog-Form angelegt...
     TBeforeRestart* LastWnd = new TBeforeRestart( Restart, this, m_LangObj, 
                                   m_LangObj-&gt;GetValue( RES_SAVECHGMSG ));
     //... und hier modal angezeigt
     LastWnd-&gt;ShowModal();                                                   
     if( *Restart )
     {
         if( ... ){
	     ...	
	 }
	 else{ // ... + Restart
             ...
	     WindowsExit( EWX_REBOOT, TRUE, 0);
             return;          // wahrscheinlich nicht nötig, aber egal                                  
         }
     }
     // In case of Cancel, *Restart = false
     // Setze jeweils anderen RadioButton auf Checked
     // falls im Dialogfenster Abbrechen gewählt wurde
     if( ProtectionOff-&gt;Checked ) ProtectionOn-&gt;Checked = true;  
     else ProtectionOff-&gt;Checked = true;                         
     delete LastWnd; LastWnd = NULL;
}
</code></pre>
<p>Wenn ich nun anschließend auf mein TrayIcon clicke, passiert folgendes:</p>
<pre><code class="language-cpp">void __fastcall OpenClick(TObject *Sender)
{
     Application-&gt;ShowMainForm = true;
	// hier sind die 2 RadioButtons noch so, wie sie waren + sein sollen
     Show();
	// jetzt ist der RadioButton gecheckt, der auch oben angeklickt worden war
}
</code></pre>
<p>Diesen Effekt hat es aber nur, wenn mein Form eh schon sichtbar ist. Wenn die Anwendung minimiert im Systray hockt und ich dann mein OpenClick() aufrufe, passiert das phänomen nicht.<br />
Hat irgendjemand einen blassen schimmer warum das so ist?</p>
<p>der oli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/77515/bei-form-gt-show-ändert-sich-einfach-mein-radiobutton-gt-checked</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 13:24:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/77515.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Jun 2004 02:47:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to bei Form-&amp;gt;Show() ändert sich einfach mein RadioButton-&amp;gt;Checked on Tue, 22 Jun 2004 02:47:23 GMT]]></title><description><![CDATA[<p>hallo,<br />
ich habe folgendes mir unerklärliches Verhalten in meiner anwendung:<br />
Ich habe zwei RadioButtons in einer GroupBox, die nicht gleichzeitig gesetzt werden können.<br />
wenn ich auf einen radiobutton klicke und z.B. in der OnClick-Methode den anderen RadioButton auf Checked = true setze, dann setzt der erste RadioButton beim Aufruf von Form-&gt;Show in der Ereignisbehandlungsroutine meines TrayIcons seine Checked-Property auf true!<br />
Reihenfolge wie folgt:</p>
<pre><code class="language-cpp">// Click auf Radiobutton ruft:
void __fastcall SubmitAllAndQuit(TObject *Sender)
{
     // PCS_NO_ACTION verhindert die Ausführung des folg. Codes
     if( ((TControl*)Sender)-&gt;Tag == PCS_NO_ACTION ) return; 
     bool* Restart = new bool;
     *Restart = true;
     TErrorPopup* ErrorPopup = new TErrorPopup(this);
     //hier wird ein neues Dialog-Form angelegt...
     TBeforeRestart* LastWnd = new TBeforeRestart( Restart, this, m_LangObj, 
                                   m_LangObj-&gt;GetValue( RES_SAVECHGMSG ));
     //... und hier modal angezeigt
     LastWnd-&gt;ShowModal();                                                   
     if( *Restart )
     {
         if( ... ){
	     ...	
	 }
	 else{ // ... + Restart
             ...
	     WindowsExit( EWX_REBOOT, TRUE, 0);
             return;          // wahrscheinlich nicht nötig, aber egal                                  
         }
     }
     // In case of Cancel, *Restart = false
     // Setze jeweils anderen RadioButton auf Checked
     // falls im Dialogfenster Abbrechen gewählt wurde
     if( ProtectionOff-&gt;Checked ) ProtectionOn-&gt;Checked = true;  
     else ProtectionOff-&gt;Checked = true;                         
     delete LastWnd; LastWnd = NULL;
}
</code></pre>
<p>Wenn ich nun anschließend auf mein TrayIcon clicke, passiert folgendes:</p>
<pre><code class="language-cpp">void __fastcall OpenClick(TObject *Sender)
{
     Application-&gt;ShowMainForm = true;
	// hier sind die 2 RadioButtons noch so, wie sie waren + sein sollen
     Show();
	// jetzt ist der RadioButton gecheckt, der auch oben angeklickt worden war
}
</code></pre>
<p>Diesen Effekt hat es aber nur, wenn mein Form eh schon sichtbar ist. Wenn die Anwendung minimiert im Systray hockt und ich dann mein OpenClick() aufrufe, passiert das phänomen nicht.<br />
Hat irgendjemand einen blassen schimmer warum das so ist?</p>
<p>der oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/545417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/545417</guid><dc:creator><![CDATA[der oli]]></dc:creator><pubDate>Tue, 22 Jun 2004 02:47:23 GMT</pubDate></item><item><title><![CDATA[Reply to bei Form-&amp;gt;Show() ändert sich einfach mein RadioButton-&amp;gt;Checked on Tue, 22 Jun 2004 03:17:00 GMT]]></title><description><![CDATA[<p>halt, zurück.</p>
<p>das problem ist doch ganz anderer natur und hat mit der überschrift höchstens indirekt was zu tun.</p>
<p>wenn ich den zweiten RadioButton auf Checked=true setze, hat der erste immer noch den Focus, und wie sich durch experimentieren nun gezeigt hat, ist es egal, welche aktion das Form ausführt: solange es im OpenClick() von vorhin etwas tut, ändert sich der radiobutton zurück. wenn ich in OpenClick() alles auskommentiere, dann passiert nix, aber dasselbe ist auch der fall, wenn ich vor OpenClick() z.b. irgendwo auf das form clicke und somit dem radiobutton den focus klaue.</p>
<p>bleibt eigentlich die frage, warum der RadioButton sich Checked setzt, wenn er noch den focus hat und das Form irgendwas tut...</p>
<p>der oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/545419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/545419</guid><dc:creator><![CDATA[der oli]]></dc:creator><pubDate>Tue, 22 Jun 2004 03:17:00 GMT</pubDate></item><item><title><![CDATA[Reply to bei Form-&amp;gt;Show() ändert sich einfach mein RadioButton-&amp;gt;Checked on Tue, 22 Jun 2004 06:07:12 GMT]]></title><description><![CDATA[<p>Wieso eigentlich in einer GroupBox? Dafür gibt's doch TRadioGroup. Einfacher kann man RadioButtons nicht handhaben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/545456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/545456</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 22 Jun 2004 06:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to bei Form-&amp;gt;Show() ändert sich einfach mein RadioButton-&amp;gt;Checked on Tue, 22 Jun 2004 09:00:37 GMT]]></title><description><![CDATA[<p>Hallo Oli,</p>
<p>du schreibst das du in einem OnClick Ereignis eines RadioButton einen anderen RadioButton Checked = true setzt.</p>
<p>Ich möchte dich darauf hinweisen, das wenn man Checked = true bei einen RadioButton setzt auch der OnClick des gecheckten RadioButtons ausgeführt wird!</p>
<p>also führt sowas</p>
<pre><code class="language-cpp">void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
	RadioButton2-&gt;Checked = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
	RadioButton1-&gt;Checked = true;
}
</code></pre>
<p>zu einem unendlichen hin und her schieben des Checked = true.</p>
<p>evtl. ist das ansatzweise dein Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/545577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/545577</guid><dc:creator><![CDATA[VergissEs]]></dc:creator><pubDate>Tue, 22 Jun 2004 09:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to bei Form-&amp;gt;Show() ändert sich einfach mein RadioButton-&amp;gt;Checked on Tue, 22 Jun 2004 10:06:44 GMT]]></title><description><![CDATA[<p>hallo!</p>
<p>danke für eure antworten, dazu gibt es folgendes:</p>
<p>@Joe_M:</p>
<blockquote>
<p>Wieso eigentlich in einer GroupBox? Dafür gibt's doch TRadioGroup.</p>
</blockquote>
<p>ich weiß. nur leider ist folgendes bei mir (BCB 5 Professional) der Fall: wenn ich in eine RadioBox RadioButtons einfüge, dann ordnen die sich nicht innerhalb dieser sondern innerhalb des übergeordneten Fensters an (zur Entwicklungszeit). Heißt, bei der kleinsten Verschiebung der Box musst du jeden einzelnen Button verschieben! (wenn man's nicht dynamisch macht, oder weil man einfach zur Entwicklungszeit schon einigermaßen sehen will). das wollte ich umgehen und es geht ja auch.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/887">@VergissEs</a>:</p>
<p>Dieses wunderbare Verhalten ist mir schon ziemlich früh aufgefallen, deswegen setze ich auch zu einem bestimmten Zeitpunkt das Tag eines der beiden Buttons auf <strong>PCS_NO_ACTION</strong>, was ich dann im OnClick abfange und sofort rausspringe. Somit habe ich die Endlosschleife umgangen. Vielleicht gibt's aber noch ne schönere Lösund?</p>
<p>Das merkwürdige war ja im Endeffekt nun eigentlich das:</p>
<blockquote>
<p>bleibt eigentlich die frage, warum der RadioButton sich Checked setzt, wenn er noch den focus hat und das Form irgendwas tut...</p>
</blockquote>
<p>aber das habe ich jetzt umgangen, indem ich den focus auf ein anderes steuerelement sezte. nur interessant zu wissen wär's schon.</p>
<p>na dann frohes schaffen,</p>
<p>der oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/545631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/545631</guid><dc:creator><![CDATA[der oli]]></dc:creator><pubDate>Tue, 22 Jun 2004 10:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to bei Form-&amp;gt;Show() ändert sich einfach mein RadioButton-&amp;gt;Checked on Tue, 22 Jun 2004 11:04:41 GMT]]></title><description><![CDATA[<p>der oli schrieb:</p>
<blockquote>
<p>wenn ich in eine RadioBox RadioButtons einfüge, dann ordnen die sich nicht innerhalb dieser sondern innerhalb des übergeordneten Fensters an (zur Entwicklungszeit).</p>
</blockquote>
<p>Dir ist aber klar, dass man RadioButtons in der RadioGroup über die Items-Property der letzeren &quot;erzeugt&quot;, nicht durch Plazieren von normalen RadioButtons!? Und diese Items müssen dann auch nicht von Hand verschoben werden.</p>
<p>Sie können es auch gar nicht, und da liegt ein möglicher Grund, GroupBox+RadioButtons anstelle einer RadioGroup zu verwenden: man hat mehr Einfluss auf die Positionierung der RadioButtons. Prinzipiell einfacher, zumal bei nennenswert vielen RadioButtons, ist aber die RadioGroup.</p>
<blockquote>
<p>nur interessant zu wissen wär's schon.</p>
</blockquote>
<p>Stell doch mal ein Beispiel-Projekt in's Netz, das das entsprechende Problem zeigt. Allein anhand deiner Erklärungen und der Codeausschnitte lässt sich das nicht nachvollziehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/545695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/545695</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Tue, 22 Jun 2004 11:04:41 GMT</pubDate></item></channel></rss>