<?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[Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender)]]></title><description><![CDATA[<p>Hi, hab mal ne Frage:<br />
Ich habe einen Array von TPanel</p>
<pre><code class="language-cpp">TPanel *Panel[100][5];
</code></pre>
<p>jetzt will ich bei dem onclick des Panels, wissen welcher es war, also ob es z.B. 10/2 war.</p>
<pre><code class="language-cpp">Panel[i][a]-&gt;OnClick = MyClick; // in ner FOR-Schleife
</code></pre>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
void __fastcall TForm1::MyClick(TObject *Sender)
{
dynamic_cast&lt;TPanel*&gt;(Sender)-&gt;Color=clBlue;

}
//---------------------------------------------------------------------------
</code></pre>
<p>Hier will ich aber nun den Index des Arrays herausfinden!<br />
ich hoffe ich hab das verständlich formuliert! :p</p>
<p>Danke schon mal!<br />
MfG FB <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/topic/113908/array-index-herausbekommen-bei-dynamic_cast-lt-tpanel-gt-sender</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Jul 2026 19:45:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/113908.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Jun 2005 10:28:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Tue, 28 Jun 2005 10:28:30 GMT]]></title><description><![CDATA[<p>Hi, hab mal ne Frage:<br />
Ich habe einen Array von TPanel</p>
<pre><code class="language-cpp">TPanel *Panel[100][5];
</code></pre>
<p>jetzt will ich bei dem onclick des Panels, wissen welcher es war, also ob es z.B. 10/2 war.</p>
<pre><code class="language-cpp">Panel[i][a]-&gt;OnClick = MyClick; // in ner FOR-Schleife
</code></pre>
<pre><code class="language-cpp">//---------------------------------------------------------------------------
void __fastcall TForm1::MyClick(TObject *Sender)
{
dynamic_cast&lt;TPanel*&gt;(Sender)-&gt;Color=clBlue;

}
//---------------------------------------------------------------------------
</code></pre>
<p>Hier will ich aber nun den Index des Arrays herausfinden!<br />
ich hoffe ich hab das verständlich formuliert! :p</p>
<p>Danke schon mal!<br />
MfG FB <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/818860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/818860</guid><dc:creator><![CDATA[FB1]]></dc:creator><pubDate>Tue, 28 Jun 2005 10:28:30 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Tue, 28 Jun 2005 10:40:09 GMT]]></title><description><![CDATA[<p>Mit dem bißchen Code, das Du zur Verfügung gestellt hast, ist nicht ersichtlich, wozu Du den Array-Index brauchst und wie man diesen sinnvoll abbilden kann -&gt; bleibt nur die Brute-Force-Methode: Durch das Array iterieren, bis das gewünschte Panel gefunden wird.</p>
<p>Wozu verwendest Du eigentlich einen dynamic cast? So wie Du es anwendest, kannst Du gleiche einen C-Style cast machen.</p>
<p>[EDIT] Wozu brauchst Du 500 Panels? Sind die alle gleichzeitig sichtbar? Wenn nicht, solltest Du das Design nochmals überdenken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/818867</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/818867</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 28 Jun 2005 10:40:09 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Tue, 28 Jun 2005 10:50:01 GMT]]></title><description><![CDATA[<p>Ja ich brauche alle 500 Panels, gibt nämlich ne Liste in ner ScrollBox.<br />
Was ist C-Style?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/818873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/818873</guid><dc:creator><![CDATA[FB1]]></dc:creator><pubDate>Tue, 28 Jun 2005 10:50:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Tue, 28 Jun 2005 10:53:58 GMT]]></title><description><![CDATA[<p>Es soll ne Umfrage werden:<br />
Bild &gt; <a href="http://ichigo01.free.fr/887ufqun.jpg" rel="nofollow">http://ichigo01.free.fr/887ufqun.jpg</a></p>
<p>Die Buttons wechseln die Farbe beim anklicken. Weil immer nur einer Markiert seien soll, muss ich den Array bekommen.</p>
<p>gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/818876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/818876</guid><dc:creator><![CDATA[FB1]]></dc:creator><pubDate>Tue, 28 Jun 2005 10:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Tue, 28 Jun 2005 10:57:43 GMT]]></title><description><![CDATA[<p>Für eine Umfrage eignen sich <strong>Radiogroups</strong> IMHO besser als dein Panels-Array. Da brauchst du auch nichts markieren. Kannst alles über den OI einstellen. <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/818881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/818881</guid><dc:creator><![CDATA[PuppetMaster2k]]></dc:creator><pubDate>Tue, 28 Jun 2005 10:57:43 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Tue, 28 Jun 2005 11:16:05 GMT]]></title><description><![CDATA[<p>dynamic cast hat den Vorteil, dass man einen NULL-Zeiger zurückbekommt, wenn nicht gecastet werden kann. Also prüf das Ergebnis des cast, bevor Du den Zeiger verwendest.<br />
Ansonsten bin ich geneigt PuppetMaster2k zuzustimmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/818894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/818894</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 28 Jun 2005 11:16:05 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Tue, 28 Jun 2005 21:56:39 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe, habs nun mit Brute Force gemacht! gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/819395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/819395</guid><dc:creator><![CDATA[FB1]]></dc:creator><pubDate>Tue, 28 Jun 2005 21:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Wed, 29 Jun 2005 06:17:55 GMT]]></title><description><![CDATA[<p>Hi FB1,</p>
<p>du könntest in der For schleife, in der du die Click Methode zuweist<br />
auch gleich dem Tag der Panels einen Wert zuweisen. Über den könntest du dann<br />
schneller das Panel herausfinden:</p>
<pre><code>for (int x(0);x&lt;100;++x) {
  for (int y(0);y&lt;5;++y) {
    Panel[x][y]-&gt;OnClick = MyClick;
    Panel[x][y]-&gt;Tag = x+100*y;
  }
}

void __fastcall TForm1::MyClick(TObject *Sender) {
  TPanel *p(dynamic_cast&lt;TPanel*&gt;(Sender));
  if (p) {
    p-&gt;Color=clBlue;
    int x(p-&gt;Tag%100);
    int y(p-&gt;Tag/100);
  }
}
</code></pre>
<p>Wenn ich jetzt nicht % und / vertauscht habe sollte es passen, oder?</p>
<p>ciao,<br />
k</p>
]]></description><link>https://www.c-plusplus.net/forum/post/819447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/819447</guid><dc:creator><![CDATA[konvenienz2]]></dc:creator><pubDate>Wed, 29 Jun 2005 06:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Wed, 29 Jun 2005 06:48:20 GMT]]></title><description><![CDATA[<p>Er braucht es wohl anders herum.</p>
<pre><code class="language-cpp">Panel[x][y]-&gt;Tag = (x * 5) + y;

int x(p-&gt;Tag / 5);
int y(p-&gt;Tag % 5);
</code></pre>
<p>Dennoch finde ich díese Vorgehensweise nicht besonders glücklich. Was macht er wenn es mal mehr Fragen werden, oder wenn es mehr Auswahlmöglichkeiten geben soll. Oder gar so gemeine Dinge, wie nur bei einer Frage mehr Auswahlmöglichkeiten...<br />
Mit dem jetzigen Design ist er da ziemlich festgelegt. Er müßte den kompletten Code überarbeiten. Wenn er die Daten vom UI entkoppelt, muß er nur die Eingangsdatei (die mit den Fragen und Auswahlmöglichkeiten) ändern und keine einzige Codezeile ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/819467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/819467</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 29 Jun 2005 06:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Wed, 29 Jun 2005 08:00:52 GMT]]></title><description><![CDATA[<p>joe_m du berechnest genau das gleiche nur in<br />
grün....</p>
<p>das funzt beides</p>
<p>und deine kritik ist mir nicht ganz klar.<br />
meinst du sein design oder die tag sache?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/819506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/819506</guid><dc:creator><![CDATA[jenz]]></dc:creator><pubDate>Wed, 29 Jun 2005 08:00:52 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Wed, 29 Jun 2005 08:19:04 GMT]]></title><description><![CDATA[<p>Die Tag Sache ist schon in Ordnung.<br />
Mir gefällt nur die Idee nicht, dass für 100 Fragen, 100 Sätze Panels erzeugt werden. Also praktisch alles 1:1 abgebildet ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/819517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/819517</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 29 Jun 2005 08:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Wed, 29 Jun 2005 23:50:38 GMT]]></title><description><![CDATA[<p>Hi Danke für die vielen Antworten,<br />
was ist denn das für ein C++ Stil:<br />
<strong>int x(p-&gt;Tag / 5);</strong><br />
So kenn ich ja die Zuweisung gar nicht <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="😕"
    /><br />
Oder ist das nur pseudo-code?</p>
<p>gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/820237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/820237</guid><dc:creator><![CDATA[FB1]]></dc:creator><pubDate>Wed, 29 Jun 2005 23:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to Array Index herausbekommen bei dynamic_cast&amp;lt;TPanel*&amp;gt;(Sender) on Thu, 30 Jun 2005 05:14:11 GMT]]></title><description><![CDATA[<p>Nein, dass ist keine Pseudocode. Probier es aus.<br />
Allerdings hast Du recht, man sieht selten, dass der Konstruktur für Basistypen verwendet wird. Nichtsdestotrotz gibt es ihn und man kann ihn verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/820261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/820261</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 30 Jun 2005 05:14:11 GMT</pubDate></item></channel></rss>