<?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[TPopupMenu Übergabeproblem]]></title><description><![CDATA[<p>Hallo,<br />
wollte diesesmal die Caption von den Items des TPopupMenue 's ändern.<br />
Funktioniert fast alles. Nur bei der Rückgabe meiner Methode getName tritt eine Exception mit der Bemerkung /Menuindex außerhalb des zulässigen Bereichs&quot; auf. Die Methode GetName ist definitiv Fehlerfrei. Sie funktioniert bisher bei allen ähnlichen Funktionen hundertprozentig! Ich gehe davon aus das es unwahrscheinlich ist, dass der Index der Items bei 1 beginnt. Habe das zwar in meiner Verzweifellung ausprobiert, aber konnte mir nicht vorstellen das ein Index nicht bei 0 beginnt. Zusätzlich habe ich das auch mit dem Debugger in Einzelschritten durchgetestet. Was könnte das Problem sein und was muss ich an meinem Quelltext ändern? Kann auch den im Notfall den gesamten Queltext zur Verfügung stellen.</p>
<pre><code class="language-cpp">if (Components[i]-&gt;ClassNameIs(&quot;TPopupMenu&quot;))
         	{
            	int NumberItem = PopupMenu-&gt;Items-&gt;Count;
		    for (int i=0; i &lt; NumberItem; i++)
                    {
                        AnsiString ItemName;
    			TMenuItem *ItemToEdit = PopupMenu-&gt;Items-&gt;Items[i];
                        ItemName = ItemToEdit-&gt;GetNamePath();
                       	ItemToEdit-&gt;Items[i]-&gt;Caption = getName(ItemName, Sprache);
                    }
            }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/161798/tpopupmenu-übergabeproblem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 17:18:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/161798.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Oct 2006 08:41:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TPopupMenu Übergabeproblem on Wed, 11 Oct 2006 08:41:43 GMT]]></title><description><![CDATA[<p>Hallo,<br />
wollte diesesmal die Caption von den Items des TPopupMenue 's ändern.<br />
Funktioniert fast alles. Nur bei der Rückgabe meiner Methode getName tritt eine Exception mit der Bemerkung /Menuindex außerhalb des zulässigen Bereichs&quot; auf. Die Methode GetName ist definitiv Fehlerfrei. Sie funktioniert bisher bei allen ähnlichen Funktionen hundertprozentig! Ich gehe davon aus das es unwahrscheinlich ist, dass der Index der Items bei 1 beginnt. Habe das zwar in meiner Verzweifellung ausprobiert, aber konnte mir nicht vorstellen das ein Index nicht bei 0 beginnt. Zusätzlich habe ich das auch mit dem Debugger in Einzelschritten durchgetestet. Was könnte das Problem sein und was muss ich an meinem Quelltext ändern? Kann auch den im Notfall den gesamten Queltext zur Verfügung stellen.</p>
<pre><code class="language-cpp">if (Components[i]-&gt;ClassNameIs(&quot;TPopupMenu&quot;))
         	{
            	int NumberItem = PopupMenu-&gt;Items-&gt;Count;
		    for (int i=0; i &lt; NumberItem; i++)
                    {
                        AnsiString ItemName;
    			TMenuItem *ItemToEdit = PopupMenu-&gt;Items-&gt;Items[i];
                        ItemName = ItemToEdit-&gt;GetNamePath();
                       	ItemToEdit-&gt;Items[i]-&gt;Caption = getName(ItemName, Sprache);
                    }
            }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1152703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152703</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Wed, 11 Oct 2006 08:41:43 GMT</pubDate></item><item><title><![CDATA[Reply to TPopupMenu Übergabeproblem on Wed, 11 Oct 2006 08:49:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du willst ja wohl die Caption deines Menüeintrages ändern und der hat keine eigenen Items. Das Ganze müßte also so aussehen.</p>
<pre><code class="language-cpp">if (Components[i]-&gt;ClassNameIs(&quot;TPopupMenu&quot;))
{
    size_t NumberItem = PopupMenu-&gt;Items-&gt;Count;
    for (size_t j=0; j &lt; NumberItem; ++j)
    {
        TMenuItem *ItemToEdit = PopupMenu-&gt;Items-&gt;Items[j];
        AnsiString ItemName(ItemToEdit-&gt;GetNamePath());
        ItemToEdit-&gt;Caption = getName(ItemName, Sprache); //Hier geändert
    }
}
</code></pre>
<p>Ich hab auch mal anders eingerückt. Ich finde das so übersichtlicher. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1152709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152709</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 11 Oct 2006 08:49:05 GMT</pubDate></item><item><title><![CDATA[Reply to TPopupMenu Übergabeproblem on Wed, 11 Oct 2006 08:57:40 GMT]]></title><description><![CDATA[<p>Ich danke dir sehr. Hat natürlich geklappt. Das mit dem Einrücken ist im eigentlichen Quelltext auch kein Problem. Nur hier im Forum habe ich eine Fehler gemacht.<br />
Nochmals danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1152723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152723</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Wed, 11 Oct 2006 08:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to TPopupMenu Übergabeproblem on Wed, 11 Oct 2006 10:24:38 GMT]]></title><description><![CDATA[<p>Hey, habe noch eine kurze Frage. Wollte Casten um aus Compinents[i] zuzugreifen was bestandtteil von TComponents ist. Leider hat das Catsen nicht funktioniert. Es sollte dann der Eintrag PopupMenu durch Componets[i] ersetzt werden, da ich dann unabhänig von dem Namen des Objektes auf das Objekt zugreifen wollte. Was habe ich verkehrt gemacht?</p>
<pre><code class="language-cpp">if (Components[i]-&gt;ClassNameIs(&quot;TPopupMenu&quot;))
         	{
                String ObjectName;
             	//TPopupMenu *ppopupmenu = dynamic_cast&lt;TPopupMenu *&gt;(comp);
            	//ppopupmenu = Components[i];

     ------&gt;&gt;&gt;    NumberItem = PopupMenu-&gt;Items-&gt;Count; &lt;&lt;&lt;-------
				for (int j=0; j &lt; NumberItem; ++j)
				{
		        	TMenuItem *ItemToEdit = PopupMenu-&gt;Items-&gt;Items[j];
		        	AnsiString ItemName(ItemToEdit-&gt;GetNamePath());
		        	ItemToEdit-&gt;Caption = getObjBezeichnung(ItemName, Sprache);
				}
            }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1152791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152791</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Wed, 11 Oct 2006 10:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to TPopupMenu Übergabeproblem on Wed, 11 Oct 2006 10:37:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>entweder so</p>
<pre><code class="language-cpp">if (Components[ix]-&gt;ClassNameIs(&quot;TPopupMenu&quot;))
{
  TPopupMenu *PopupMenu = static_cast&lt;TPopupMenu *&gt;(Components[ix]);
  int NumberItem = PopupMenu-&gt;Items-&gt;Count;
  for (int j=0; j &lt; NumberItem; ++j)
  {
    TMenuItem *ItemToEdit = PopupMenu-&gt;Items-&gt;Items[j];
    AnsiString ItemName(ItemToEdit-&gt;GetNamePath());
    ItemToEdit-&gt;Caption = getObjBezeichnung(ItemName, Sprache);
    }
  }
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">TPopupMenu* PopupMenu = dynamic_cast&lt;TPopupMenu*&gt;(Components[ix]);
if (PopupMenu)
{
  int NumberItem = PopupMenu-&gt;Items-&gt;Count;
  for (int j=0; j &lt; NumberItem; ++j)
  {
    TMenuItem *ItemToEdit = PopupMenu-&gt;Items-&gt;Items[j];
    AnsiString ItemName(ItemToEdit-&gt;GetNamePath());
    ItemToEdit-&gt;Caption = getObjBezeichnung(ItemName, Sprache);
    }
  }
</code></pre>
<p>das heißt du brauchst entweder <em>ClassName</em> und <em>static_cast</em> <strong>oder</strong> <em>dynamic_cast</em>. Beides ClassName und dynamic_cast zusammen ist doppelt gemoppelt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1152794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152794</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 11 Oct 2006 10:37:49 GMT</pubDate></item><item><title><![CDATA[Reply to TPopupMenu Übergabeproblem on Wed, 11 Oct 2006 10:46:34 GMT]]></title><description><![CDATA[<p>Klappt nicht ganz. Gleube ich habe das falsch erklärt. Oder ich liege da falsch.<br />
PopupMenu soll durch Components[i] ersetzt werden. Also so z.B.</p>
<pre><code class="language-cpp">int NumberItem = Components[i]-&gt;Items-&gt;Count;
</code></pre>
<p>Da Components[] kein bestandteil von TPopupmenu ist, sondern von TComponent, bin ich gezwungen zu Casten. Wo liegt mein fehler?<br />
Hoffe es gibt noch eine Antwort von Euch.<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1152799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152799</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Wed, 11 Oct 2006 10:46:34 GMT</pubDate></item><item><title><![CDATA[Reply to TPopupMenu Übergabeproblem on Wed, 11 Oct 2006 10:49:06 GMT]]></title><description><![CDATA[<p>Noch kurz,<br />
PopupMenu ist der Name des Objekts welchens von TPopupMenu stammt. Ich möchte auf verschiede Objekte später mal verschiede TPopupMenu-Komponenten legen. Die heißen dann nur etwas anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1152802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152802</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Wed, 11 Oct 2006 10:49:06 GMT</pubDate></item><item><title><![CDATA[Reply to TPopupMenu Übergabeproblem on Wed, 11 Oct 2006 10:52:20 GMT]]></title><description><![CDATA[<p>Halt, alles zurück.<br />
Ich habe mich verguckt. Ist ja alles richtig. Hattest recht und ich unrecht. Danke dir. <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="👍"
    /> <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="👍"
    /> <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="👍"
    /> <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/1152804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1152804</guid><dc:creator><![CDATA[radian]]></dc:creator><pubDate>Wed, 11 Oct 2006 10:52:20 GMT</pubDate></item></channel></rss>