<?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[CheckBox Matrix nach arry]]></title><description><![CDATA[<p>Hi,<br />
ich möchte folgendes machen,</p>
<p>x x x x CheckBox1.1 - 1.4<br />
x x x x CheckBox2.1 - 2.4<br />
x x x x CheckBox3.1 - 3.4<br />
x x x x CheckBox4.1 - 4.4</p>
<p>char checkstate[4];</p>
<p>Es sollen nun die bits 0-3 in checkstate[0] die Zustände der<br />
Checkboxen 1.1 - 1.4 annehmen, die CheckBoxen 2.1 - 2.4 -&gt;checkstate[1]<br />
unsw..<br />
Da ich 20 CheckBox Zeilen a 4 CheckBoxen brauche und ich alle OnClick<br />
Ereignisse auf CheckBox1.1 lege müsste ich nur noch eine Möglichkeit<br />
haben anhand des Senders einen Index zu initialisieren und dann die ganze<br />
CheckBox Zeile in die entsprechenden Stringspeicher zu schreiben.<br />
Gibt es da eine Möglichkeit.</p>
<p>Gruß<br />
Johann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/77954/checkbox-matrix-nach-arry</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 13:24:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/77954.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 26 Jun 2004 09:34:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Sat, 26 Jun 2004 12:48:47 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich möchte folgendes machen,</p>
<p>x x x x CheckBox1.1 - 1.4<br />
x x x x CheckBox2.1 - 2.4<br />
x x x x CheckBox3.1 - 3.4<br />
x x x x CheckBox4.1 - 4.4</p>
<p>char checkstate[4];</p>
<p>Es sollen nun die bits 0-3 in checkstate[0] die Zustände der<br />
Checkboxen 1.1 - 1.4 annehmen, die CheckBoxen 2.1 - 2.4 -&gt;checkstate[1]<br />
unsw..<br />
Da ich 20 CheckBox Zeilen a 4 CheckBoxen brauche und ich alle OnClick<br />
Ereignisse auf CheckBox1.1 lege müsste ich nur noch eine Möglichkeit<br />
haben anhand des Senders einen Index zu initialisieren und dann die ganze<br />
CheckBox Zeile in die entsprechenden Stringspeicher zu schreiben.<br />
Gibt es da eine Möglichkeit.</p>
<p>Gruß<br />
Johann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/548332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/548332</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Sat, 26 Jun 2004 12:48:47 GMT</pubDate></item><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Sat, 26 Jun 2004 17:46:33 GMT]]></title><description><![CDATA[<p>Schau dir mal die <strong>Tag</strong>-Eigenschaft an und suche mal hier im Forum nach <strong>dynamic_cast</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/548557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/548557</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Sat, 26 Jun 2004 17:46:33 GMT</pubDate></item><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Sat, 26 Jun 2004 20:44:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>kannst Du mir nichts genaueres sagen.</p>
<p>Borland Hilfe:<br />
Die Eigenschaft Tag speichert eine Ganzzahl als Teil der Komponente.<br />
__property int Tag = {read=FTag, write=FTag, default=0};</p>
<p>Beschreibung</p>
<p>Tag hat keine vordefinierte Bedeutung. Sie können in dieser Eigenschaft zusätzliche Informationen über die Komponente in Form einer Ganzzahl speichern oder die Eigenschaft in einen 32-Bit-Wert, wie z.B. in eine Komponentenreferenz oder einen Zeiger, umgewandelt werden.</p>
<p>void __fastcall TForm1::CheckBox1Click(TObject *Sender)<br />
{<br />
char index;<br />
index = Sender-&gt;Tag;<br />
}<br />
funktioniert nicht;<br />
Gruß<br />
Johann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/548618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/548618</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Sat, 26 Jun 2004 20:44:43 GMT</pubDate></item><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Sat, 26 Jun 2004 21:53:20 GMT]]></title><description><![CDATA[<p>Der Tag-Property der CheckBoxes eine fortlaufende Nummer zuweisen, im OnClick dann den Sender nach TCheckBox casten und die Tag-Property auslesen.<br />
Siehe auch die FAQ unter &quot;Komponenten - Zugriff nicht üer Namen&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/548645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/548645</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sat, 26 Jun 2004 21:53:20 GMT</pubDate></item><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Mon, 28 Jun 2004 08:33:43 GMT]]></title><description><![CDATA[<p>char index</p>
<p>index = (TCheckBox)Sender-&gt;Tag;</p>
<p>Funktioniert nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/549185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/549185</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Mon, 28 Jun 2004 08:33:43 GMT</pubDate></item><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Mon, 28 Jun 2004 08:43:32 GMT]]></title><description><![CDATA[<blockquote>
<p>Funktioniert nicht</p>
</blockquote>
<p>Natürlich nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<pre><code class="language-cpp">int index

index = ((TCheckBox*)Sender)-&gt;Tag;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/549193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/549193</guid><dc:creator><![CDATA[Peter]]></dc:creator><pubDate>Mon, 28 Jun 2004 08:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Mon, 28 Jun 2004 08:46:42 GMT]]></title><description><![CDATA[<p>Dasd schrieb:</p>
<blockquote>
<p>suche mal hier im Forum nach <strong>dynamic_cast</strong></p>
</blockquote>
<p>Muss man wirklich noch mehr dazu sagen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/549194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/549194</guid><dc:creator><![CDATA[Dasd]]></dc:creator><pubDate>Mon, 28 Jun 2004 08:46:42 GMT</pubDate></item><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Mon, 28 Jun 2004 09:22:08 GMT]]></title><description><![CDATA[<p>blöde frage:<br />
kann man, wenn man sich selber ein objekt von checkbox ableitet ein ereignis nicht als static deklarieren? dann könnte man doch mit dem this-pointer arbeiten oder irre ich mich da?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/549211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/549211</guid><dc:creator><![CDATA[MamboKurt]]></dc:creator><pubDate>Mon, 28 Jun 2004 09:22:08 GMT</pubDate></item><item><title><![CDATA[Reply to CheckBox Matrix nach arry on Mon, 28 Jun 2004 15:33:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void __fastcall TForm1::alarm_Click(TObject *Sender)
{
    char mask;
    int  index;
    if (!dont_draw)
    {
       index = ((TCheckBox*)Sender)-&gt;Tag;
       mask  = index &amp; 0xff;
       index = index &gt;&gt; 8;
       if(((TCheckBox*)Sender)-&gt;Checked)
       {
           alarme[index] = alarme[index] | mask;
       }
       else
       {
         mask  = mask ^ 0xff;
         alarme[index] = alarme[index] &amp; mask;
       }
       if (!write_relay_data(index,alarme[index]))  //write to RS232
       {
         ask(&amp;mede1[0]);                            //RS232 TIMEOUT? 
       }
    }
}
</code></pre>
<p>Funktioniert, ich habe nun 20 CheckBox-Zeilen a 5 CheckBoxen wobei die erste<br />
CheckBox Zeile die Tags 0x0001 - 0x0010 bekommen, die zweite die Tags<br />
0x0101 - 0x0110 unsw....Das Highbyte ist der Index und das Lowbyte die Maske.<br />
Vorher hatte ich für Jede CheckBox das OnClick Ereigniss benutzt was den<br />
Code natürlich erheblich verlängert.</p>
<p>Würde soetwas auch umgekehrt gehen, das CheckBox Feld steht für 20 Alarme<br />
die 5 CheckBoxen für 5 Relays die Pro Alarm wählbar sind diese werden dann<br />
via RS232 zu einer Controllerkarte übertragen und dort im EEPROM gespeichert.<br />
Nun lade ich mir nach dem Windows Programmstart alle eingestellten Alarme vom Controller in das arry alarme[20]. Als erstes muss ich nun entsprechend der<br />
gesetzten bits im Arry alarme meine CheckBoxen setzen</p>
<p>alarm1_r1-&gt;Checked = alarme[0] &amp; 0x01;<br />
alarm1_r2-&gt;Checked = alarme[0] &amp; 0x02;<br />
alarm1_r3-&gt;Checked = alarme[0] &amp; 0x04;<br />
alarm1_r4-&gt;Checked = alarme[0] &amp; 0x08;<br />
alarm1_r5-&gt;Checked = alarme[0] &amp; 0x10;</p>
<p>alarm2_r1-&gt;Checked = alarme[1] &amp; 0x01;</p>
<p>unsw.................</p>
<p>alarm20_r1-&gt;Checked = alarm[19] &amp; 0x01;</p>
<p>Was ein bischen umständlich ist.</p>
<p>Muss gestehen das ich mit dem Casten noch so meine Probleme habe.</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/549384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/549384</guid><dc:creator><![CDATA[hermes]]></dc:creator><pubDate>Mon, 28 Jun 2004 15:33:04 GMT</pubDate></item></channel></rss>