<?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[Variable im Namen eines Objekts &#x2F; einer Methode]]></title><description><![CDATA[<p>Hallo,<br />
eigentlich eine einfache Frage, aber ist sehr schwer danach zu suchen und etwas aussagekräftiges zu finden:</p>
<p>Ich habe ein GUI erstellt mit sehr vielen Eingabefeldern (Dropboxen und Textboxen)<br />
zum Auslesen verwende ich z.B diesen Code</p>
<pre><code class="language-cpp">MarshalString(cb_A1-&gt;SelectedItem-&gt;ToString(),a);
			gpio_A1.set_funtion(a);
			gpio_A1.set_gpio(&quot;A1&quot;);
			if (a==&quot;Not Used&quot; || &quot;Peripherie&quot;)
			{
				cb2_A1-&gt;Enabled=false;
				tb_A1-&gt;Enabled=false;
			}
			if (a==&quot;GPIO&quot;)
			{
				cb2_A1-&gt;Enabled=true;
				tb_A1-&gt;Enabled=true;
                            }
</code></pre>
<p>soweit soeinfach.</p>
<p>Das selbe brauche ich jetzt für cb_A1 bis cb_A16, cb2_A1 bis cb2_A16 und tb_A1 bis tb_A16.</p>
<p>Ich könnte natürlich in jeden Eventhandler diesen Code kopieren und die Zahlen verändern,<br />
aber dachte mir dass es doch auch eine Möglichkeit geben muss, wie ich diese Methode so verändere, dass die Zahl eine Variable ist,<br />
und der Methode beim Aufruf übergeben wird.</p>
<p>Sitze jetzt schon ne Weile an google, Büchern, und dem Compiler, aber habe leider noch keine Möglichkeit gefunden, die funktioniert.</p>
<p>Wäre für jeden Lösungshinweis sehr dankbar.<br />
Merci schonmal fürs durchlesen !</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/238940/variable-im-namen-eines-objekts-einer-methode</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 14:37:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238940.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Apr 2009 13:40:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable im Namen eines Objekts &#x2F; einer Methode on Fri, 17 Apr 2009 13:40:39 GMT]]></title><description><![CDATA[<p>Hallo,<br />
eigentlich eine einfache Frage, aber ist sehr schwer danach zu suchen und etwas aussagekräftiges zu finden:</p>
<p>Ich habe ein GUI erstellt mit sehr vielen Eingabefeldern (Dropboxen und Textboxen)<br />
zum Auslesen verwende ich z.B diesen Code</p>
<pre><code class="language-cpp">MarshalString(cb_A1-&gt;SelectedItem-&gt;ToString(),a);
			gpio_A1.set_funtion(a);
			gpio_A1.set_gpio(&quot;A1&quot;);
			if (a==&quot;Not Used&quot; || &quot;Peripherie&quot;)
			{
				cb2_A1-&gt;Enabled=false;
				tb_A1-&gt;Enabled=false;
			}
			if (a==&quot;GPIO&quot;)
			{
				cb2_A1-&gt;Enabled=true;
				tb_A1-&gt;Enabled=true;
                            }
</code></pre>
<p>soweit soeinfach.</p>
<p>Das selbe brauche ich jetzt für cb_A1 bis cb_A16, cb2_A1 bis cb2_A16 und tb_A1 bis tb_A16.</p>
<p>Ich könnte natürlich in jeden Eventhandler diesen Code kopieren und die Zahlen verändern,<br />
aber dachte mir dass es doch auch eine Möglichkeit geben muss, wie ich diese Methode so verändere, dass die Zahl eine Variable ist,<br />
und der Methode beim Aufruf übergeben wird.</p>
<p>Sitze jetzt schon ne Weile an google, Büchern, und dem Compiler, aber habe leider noch keine Möglichkeit gefunden, die funktioniert.</p>
<p>Wäre für jeden Lösungshinweis sehr dankbar.<br />
Merci schonmal fürs durchlesen !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1697272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697272</guid><dc:creator><![CDATA[zitroneneis]]></dc:creator><pubDate>Fri, 17 Apr 2009 13:40:39 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Namen eines Objekts &#x2F; einer Methode on Fri, 17 Apr 2009 13:56:42 GMT]]></title><description><![CDATA[<p>ganz easy <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>
<p>entweder selber zusammenbauen (solange die zahl einstellig ist:</p>
<pre><code class="language-cpp">char buffer[32] = &quot;cb_Ax&quot;; // x platzhalter für die ziffer

const unsigned pos = 4;

unsigned neue_ziffer = 8;

buffer[pos] = neue_ziffer + '0'
</code></pre>
<p>=&gt; &quot;cb_A8</p>
<p>gibt auch eine funktion dafür (geht auch mit zahlen):</p>
<pre><code class="language-cpp">char buffer[32];

unsigned neue_zahl = 25521;

sprintf(buffer, &quot;cb_A%d&quot;, neue_zahl); // %d ist der platzhalter
</code></pre>
<p>=&gt; &quot;cb_A25521&quot;</p>
<p>mit %c kannst du auch buchstaben ersetzen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1697285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697285</guid><dc:creator><![CDATA[helferlein]]></dc:creator><pubDate>Fri, 17 Apr 2009 13:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Namen eines Objekts &#x2F; einer Methode on Fri, 17 Apr 2009 14:13:10 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20512">@helferlein</a>,<br />
1. Er braucht nicht einen String, sondern eine Variable, welche so heisst.<br />
2. Bitte das nächste Mal C++ Funktionen im C++ Forum vorschlagen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21432">@zitroneneis</a>,<br />
Wo ist das Problem?</p>
<pre><code class="language-cpp">void foo(TypeVon_cb_Ax&amp; cbAx, TypVon_cb2_Ax&amp; cb2Ax, TypVon_tb_Ax tbAx)
{
  // ...
}
</code></pre>
<p>Da ich die Typen nicht kenne, habe ich mal Pseudonamen verwendet. Aber du solltest die Typen schliesslich kennen, nehme ich an. Und womöglich reicht sogar die Übergabe eine <code>const</code> Referenz.</p>
<p>Grüssli</p>
<p>PS: Wenn du aus allen Variablen Listen machen würdest, wäre die Handhabung womöglich deutlich einfacher!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1697296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697296</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 17 Apr 2009 14:13:10 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Namen eines Objekts &#x2F; einer Methode on Sun, 19 Apr 2009 11:06:53 GMT]]></title><description><![CDATA[<p>also vielen Dank schonmal für die Antworten.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20512">@helferlein</a></p>
<p>ich bin mir nicht sicher ob du mich richtig verstanden hast (oder ich deine Lösung nicht verstehe) aber:</p>
<p>ich habe 16 Dropboxen die durchnummeriert sind.<br />
Jedesmal wenn in eine dieser 16 Dropboxen was verändert wird, muss die selbe<br />
Verarbeitung der Daten erfolgen.</p>
<p>So in etwa</p>
<pre><code class="language-cpp">MarshalString((cb_A1)-&gt;SelectedItem-&gt;ToString(),a);
			gpio_A1.set_funtion(a);
			gpio_A1.set_gpio(&quot;A{b}&quot;);
			if (a==&quot;Not Used&quot; || &quot;Peripherie&quot;)
			{
				cb2_A1-&gt;Enabled=false;
			.........
}
</code></pre>
<p>dasselbe bei der nächsten Box</p>
<pre><code class="language-cpp">MarshalString((cb_A2)-&gt;SelectedItem-&gt;ToString(),a);		
			gpio_A2.set_funtion(a);
			gpio_A2.set_gpio(&quot;A{b}&quot;);
			if (a==&quot;Not Used&quot; || &quot;Peripherie&quot;)
			{
				cb2_A2-&gt;Enabled=false;
			........
                        }
</code></pre>
<p>dasselbe bei der nächsten Box</p>
<pre><code class="language-cpp">MarshalString((cb_A3)-&gt;SelectedItem-&gt;ToString(),a);
			gpio_A3.set_funtion(a);
			gpio_A3.set_gpio(&quot;A{b}&quot;);
			if (a==&quot;Not Used&quot; || &quot;Peripherie&quot;)
			{
				cb2_A3-&gt;Enabled=false;
				.............
                        }
</code></pre>
<p>Da der Code noch deutlich länger ist dachte ich nur es wäre schön,<br />
wenn ich ihn nicht 16 mal kopiere und nur die Zahlen austausche, sondern das ganze verallgemeinere.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9752">@Dravere</a></p>
<p>das was du gepostet hast hört sich schon ganz gut an aber klappt bei mir (sofern ich deine Lösung richtig verstehe leider auch nicht ganz)</p>
<p>Soll ich der Methode einfach Referenzen auf meine Objekte übergeben ?<br />
Ich habs mal so probiert:</p>
<pre><code class="language-cpp">void set_function(System::Windows::Forms::ComboBox cb_Ax,
System::Windows::Forms::ComboBox cb2_Ax, 
System::Windows::Forms::MaskedTextBox tb_Ax)
		{
			string a;
			MarshalString(cb_Ax-&gt;SelectedItem-&gt;ToString(),a);
                        ..............
                }
</code></pre>
<p>Hierbei ist es aber so, dass ich wenn ich dann</p>
<pre><code>cb_Ax-&gt;
</code></pre>
<p>schreibe, die Fehlermeldung</p>
<blockquote>
<p>IntelliSense: '. oder -&gt; Falsch verwendet'</p>
</blockquote>
<p>angezeigt wird (ich benutze in diesem Fall VisalStudioExpress2008 von MS)</p>
<p>Irgendjemand ne Idee ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1698089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1698089</guid><dc:creator><![CDATA[zitroneneis]]></dc:creator><pubDate>Sun, 19 Apr 2009 11:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Namen eines Objekts &#x2F; einer Methode on Sun, 19 Apr 2009 11:26:01 GMT]]></title><description><![CDATA[<p>Ganz einfach: Pack die Checkboxes in ein Array, eine Hashmap etc. etc.</p>
<p>Das was du willst geht so in C++ nicht. C++ ist statisch getyped. Es gibt z.b. auch kein eval(), was einen String an Befehlen ausführen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1698102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1698102</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 19 Apr 2009 11:26:01 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Namen eines Objekts &#x2F; einer Methode on Sun, 19 Apr 2009 11:39:57 GMT]]></title><description><![CDATA[<p>hab nochmal ein bisschen rumprobiert, und jetzt klappt das so wie ich das will. (soweit ich das bis jetzt überprüft habe)</p>
<p>der code falls es jemand interessiert:</p>
<pre><code class="language-cpp">void set_function(System::Windows::Forms::ComboBox^cb_Ax,
System::Windows::Forms::ComboBox^cb2_Ax, 
System::Windows::Forms::MaskedTextBox^ tb_Ax)
		{		
			string a;		
			MarshalString(cb_Ax-&gt;SelectedItem-&gt;ToString(),a);
			gpio_A[b].set_funtion(a);
			if (a==&quot;Not Used&quot; || &quot;Peripherie&quot;)
			{
				cb2_Ax-&gt;Enabled=false;
				tb_Ax-&gt;Enabled=false;
                        }
                 }
                 ................
</code></pre>
<p>und im jeweiligen Eventhandler</p>
<pre><code class="language-cpp">private: System::Void cb_A7_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) 
                 {
			 set_function(cb_A7,cb2_A7,tb_A7);
		 }
</code></pre>
<p>Tausend Dank für die Unterstützung !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1698109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1698109</guid><dc:creator><![CDATA[zitroneneis]]></dc:creator><pubDate>Sun, 19 Apr 2009 11:39:57 GMT</pubDate></item></channel></rss>