<?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[Untermenüs zur Laufzeit erstellen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte ein Menü zur Laufzeit generieren. Das geht soweit auch schon mit dem Beispiel aus der Borlandhilfe. Nur habe ich folgendes Problem:</p>
<ul>
<li>Menu1</li>
<li>Menü2</li>
</ul>
<p>geht... Wie machte ich ein</p>
<p>--&gt;Menü1<br />
-----&gt;Menü1.1<br />
--&gt;Menü2<br />
-----&gt;Menü2.2<br />
Ich weiß das es eine Eigenschaft Parent für TMenuItem gibt. Aber die scheint es nicht zu sein... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
<p>Vielleicht könnt ihr mir helfen...</p>
<p>Gruß<br />
handyman</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/83312/untermenüs-zur-laufzeit-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 21:06:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/83312.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Aug 2004 13:30:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Thu, 19 Aug 2004 13:33:10 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich möchte ein Menü zur Laufzeit generieren. Das geht soweit auch schon mit dem Beispiel aus der Borlandhilfe. Nur habe ich folgendes Problem:</p>
<ul>
<li>Menu1</li>
<li>Menü2</li>
</ul>
<p>geht... Wie machte ich ein</p>
<p>--&gt;Menü1<br />
-----&gt;Menü1.1<br />
--&gt;Menü2<br />
-----&gt;Menü2.2<br />
Ich weiß das es eine Eigenschaft Parent für TMenuItem gibt. Aber die scheint es nicht zu sein... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
<p>Vielleicht könnt ihr mir helfen...</p>
<p>Gruß<br />
handyman</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586376</guid><dc:creator><![CDATA[handyman]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:33:10 GMT</pubDate></item><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Thu, 19 Aug 2004 13:49:38 GMT]]></title><description><![CDATA[<p>Statt dem Hauptmenü musst du das neue Item halt dem Item hinzufügen, unter dem das SubMenu zu finden sein soll.</p>
<pre><code class="language-cpp">PopupMenu1-&gt;Items-&gt;Items[0]-&gt;Add(NewItem);
</code></pre>
<p>Anstelle des Index kannst du natürlich auch direkt den Namen des &quot;Eltern&quot;-Items verwenden, was allerdings recht unflexibel ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586402</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Thu, 19 Aug 2004 13:51:57 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>in der Komponentenpalette MainMenu anclicken<br />
F1-Taste druecken<br />
Eigenschaften<br />
Items<br />
Beispiele</p>
<p>MfG<br />
Klaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586405</guid><dc:creator><![CDATA[KlausB]]></dc:creator><pubDate>Thu, 19 Aug 2004 13:51:57 GMT</pubDate></item><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Thu, 19 Aug 2004 14:17:23 GMT]]></title><description><![CDATA[<p>Ehrlich gesagt kann auch ich in der Hilfe kein Beispiel zum Erstellen eines &quot;SubItems&quot; finden (sonst hätte ich schon darauf hingewiesen ;)).<br />
Dabei wäre angesichts des etwas verwirrenden &quot;doppelten&quot; Einsatzes von <em>Items</em> gerade hier ein Beispiel durchaus angebracht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586433</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586433</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 19 Aug 2004 14:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Thu, 19 Aug 2004 17:05:31 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>danke für die Tips!</p>
<p>Mit dem folgenden Quellcode kann ich das erste Item erstellen:</p>
<pre><code class="language-cpp">//Datei
        TMenuItem *NewItem = new TMenuItem(NewItem); // create the new item
        MainMenu1-&gt;Items-&gt;Add(NewItem);// add it to the Popupmenu
        NewItem-&gt;Caption = language_f(1);
        NewItem-&gt;Tag = 0;
        NewItem-&gt;OnClick = MenuClick; // assign it an event handler
</code></pre>
<p>Wenn ich dann aber folgendes hinzufüge:</p>
<pre><code class="language-cpp">//Datei -&gt; Beenden
        TMenuItem *NewItem1 = new TMenuItem(NewItem1); // create the new item
        MainMenu1-&gt;Items-&gt;Items[0]-&gt;Add(NewItem1);// add it to the Popupmenu
        NewItem1-&gt;Caption = language_f(2);
        NewItem1-&gt;Tag = 1;
        NewItem1-&gt;OnClick = MenuClick; // assign it an event handler´
</code></pre>
<p>Dann meldet er in der Ausführung:</p>
<blockquote>
<p>---------------------------<br />
Debugger Exception Notification<br />
---------------------------<br />
Project main.exe raised exception class EAccessViolation with message 'Access violation at address 00421A62 in module 'main.exe'. Read of address FFFFFFD0'. Process stopped. Use Step or Run to continue.<br />
---------------------------<br />
OK Hilfe<br />
---------------------------</p>
</blockquote>
<p>Und bleibt in der Zeile</p>
<pre><code class="language-cpp">TMenuItem *NewItem = new TMenuItem(NewItem); // create the new item
</code></pre>
<p>des ersten Items stehen. Ohne das zweite Menüitem klappt aber alles...</p>
<p>Was mache ich falsch?? <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="😕"
    /></p>
<p>CU<br />
Handyman</p>
<p>&lt;Edit&gt;<br />
Der Aufruf</p>
<pre><code class="language-cpp">language_f(2);
</code></pre>
<p>ist lediglich der Text des Menüpunktes, der je nach der Sprachauswahl dees Anwenders angezeigt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586590</guid><dc:creator><![CDATA[handyman]]></dc:creator><pubDate>Thu, 19 Aug 2004 17:05:31 GMT</pubDate></item><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Thu, 19 Aug 2004 18:03:42 GMT]]></title><description><![CDATA[<p>handyman schrieb:</p>
<blockquote>
<p>Ohne das zweite Menüitem klappt aber alles...</p>
</blockquote>
<p>Das bezweifle ich. Zumindest, wenn du dort denselben Code verwendest wie hier gezeigt.</p>
<p>Du kannst im Konstruktor nicht das gerade erst zu erzeugende Item übergeben, und diesen Fehler hast du auch im Code für das erste Item. Nimm stattdessen das Menu selbst.</p>
<pre><code class="language-cpp">TMenuItem *NewItem = new TMenuItem(MainMenu1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/586628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586628</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 19 Aug 2004 18:03:42 GMT</pubDate></item><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Thu, 19 Aug 2004 18:34:59 GMT]]></title><description><![CDATA[<p>Hallo Jansen,</p>
<p>danke für den Tipp!! *sich-an-den-Kopf-schlägt*</p>
<p>Mit der Funktion</p>
<pre><code class="language-cpp">void  __fastcall TForm3::create_menu (int caption, int tag, TMenuItem *parent)
{
        TMenuItem *NewItem1 = new TMenuItem(MainMenu1); // create the new item
        parent-&gt;Add(NewItem1);// add it to the Popupmenu
        NewItem1-&gt;Caption = language_f(caption);
        NewItem1-&gt;Tag = tag;
        NewItem1-&gt;OnClick = MenuClick; // assign it an event handler
}
</code></pre>
<p>und dem Aufruf</p>
<pre><code class="language-cpp">//Datei
        create_menu(1,0,MainMenu1-&gt;Items);

        //Datei -&gt; Beenden
        create_menu(2,1,MainMenu1-&gt;Items-&gt;Items[0]);
</code></pre>
<p>geht es nun!!</p>
<p>CU<br />
Dominique</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586664</guid><dc:creator><![CDATA[handyman]]></dc:creator><pubDate>Thu, 19 Aug 2004 18:34:59 GMT</pubDate></item><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Fri, 20 Aug 2004 06:32:47 GMT]]></title><description><![CDATA[<p>Hi leute ich hab auch ein Problem was damit zutun hat und zwar kann ich prima MenueItems erstellen nur das löschen funktioniert nur scheinbar. Irgendwie gibt er beim Löschen die MenueItems und deren OnClick nicht anständig frei... Ich lösche die Items und alles ist okay... mann sieht also keine mehr... dann erstelle ich neue Items und auf einmal sind auch die alten wieder da...</p>
<pre><code>void __fastcall TForm_Main::ClientenONClick(TObject *Sender)
{
    TMenuItem *ASender;
    try {
      ASender = ( dynamic_cast&lt;TMenuItem *&gt; (Sender) );
      TstaticClass::ChangeClient(AnsiReplaceStr( ASender-&gt;Caption,&quot;&amp;&quot;,&quot;&quot; ));
     }
    catch ( ... ) {

    }
    ASender = 0;
};

void __fastcall TForm_Main::CreateClientenItem(const AnsiString &amp;TheCaption)
{
  TMenuItem *NewItem;
  NewItem = new TMenuItem(this);
  NewItem -&gt; OnClick = ClientenONClick;
  NewItem -&gt; Caption = TheCaption;
  MainMenu-&gt;Items-&gt;operator [](0)-&gt;operator [](1)-&gt; Add(NewItem);
}
</code></pre>
<p>Ich hab jede Art von Destroy ausprobiert (also Clear, Delete, etc.)...<br />
Hat jemand ne Ahnung weshalb er die Menuepunkte nicht korrekt zerstört?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586876</guid><dc:creator><![CDATA[FrankHof]]></dc:creator><pubDate>Fri, 20 Aug 2004 06:32:47 GMT</pubDate></item><item><title><![CDATA[Reply to Untermenüs zur Laufzeit erstellen on Fri, 20 Aug 2004 08:20:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>1. Zu einer neuen Frage solltest du immer auch einen neuen Thread aufmachen.<br />
2. Wie löscht du denn deine MenuItems? Aus dem geposteten Code ist das nicht zu ersehen. Bedenke, das ein MenuItem aus der Liste des Parent Items (oder Menus) gelöscht werden muss.</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/586943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/586943</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 20 Aug 2004 08:20:04 GMT</pubDate></item></channel></rss>