<?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[Von wo aus wurde das Kontextmenu aufgerufen??]]></title><description><![CDATA[<p>Habe zwei TCharts, die beide mit dem selben Kontextmenu verbunden sind. Wie kann ich nach der Auswahl eines MenuItems erfahren, von welchem TChart das ausging?? Als Sender bekomm ich ja nur das MenuItem...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/119739/von-wo-aus-wurde-das-kontextmenu-aufgerufen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 08:14:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119739.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 05 Sep 2005 08:27:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Mon, 05 Sep 2005 08:27:00 GMT]]></title><description><![CDATA[<p>Habe zwei TCharts, die beide mit dem selben Kontextmenu verbunden sind. Wie kann ich nach der Auswahl eines MenuItems erfahren, von welchem TChart das ausging?? Als Sender bekomm ich ja nur das MenuItem...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865166</guid><dc:creator><![CDATA[apo]]></dc:creator><pubDate>Mon, 05 Sep 2005 08:27:00 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Mon, 05 Sep 2005 08:49:45 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>das geht wohl nur über die Eigenschaft TMenuItem-&gt;Parent</p>
<p>BCB-Hilfe zu TMenuItem::Parent schrieb:</p>
<blockquote>
<p>Wenn es sich bei dem Menüeintrag um einen Eintrag im Hauptmenü oder um einen übergeordneten Eintrag eines Popup-Menüs handelt, ist Parent mit den Wert der Eigenschaft Items des betreffenden Menüs identisch.</p>
</blockquote>
<p>also</p>
<pre><code class="language-cpp">TMenuItem *MenuItem = static_cast&lt;TMenuItem *&gt; (Sender);
  if (MenuItem-&gt;Parent == PopupMenu1-&gt;Items)
  {
    // MenuItem gehört zu PopupMenu1
    }
</code></pre>
<p>/Edit : Am besten ist es, wenn du das ganze Konzept so schreibst, das du diese Überprüfung nicht brauchst.<br />
Am leichtesten ist es, die Tag-Eigenschaft zu benutzen, um die einzelnen Menu-Einträge auseinander zu halten.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865183</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 05 Sep 2005 08:49:45 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Mon, 05 Sep 2005 09:38:02 GMT]]></title><description><![CDATA[<p>Danke, ich werde mir das mal ansehen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865236</guid><dc:creator><![CDATA[apo]]></dc:creator><pubDate>Mon, 05 Sep 2005 09:38:02 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Mon, 05 Sep 2005 09:48:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Man erhält das ParentMenu auch über die Funktion TMenuItem::GetParentMenu(). Den erhalten Pointer kann man dann versuchen nach TPopupMenu zu casten. Wenn das erfolgreich war kann man die übergeordnete Komponente des PopupMenus mit TPopupMenu::PopupComponent auslesen. Die Eigenschaft liefert einen Zeiger auf TComponent welchen du nach nach TChart casten kannst. Alles immer schön mit dynamic_cast und nachfolgender Kontrolle.</p>
<p>Ciao</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865246</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 05 Sep 2005 09:48:57 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Mon, 05 Sep 2005 10:12:35 GMT]]></title><description><![CDATA[<p>Hmm, so recht versteh ich das nicht! Hab mich bisher noch nicht so richtig mit diesem casten beschäftigt (dynamic_cast, static_cast)... und jetzt auch noch kontrollieren, da kann ich leider nicht ganz folgen.</p>
<p>Nochmals, ich muss wissen, ob es nun von Chart1 oder von Chart2 aufgerufen wurde, wobei BEIDE charts das GLEICHE PopupMenu haben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865270</guid><dc:creator><![CDATA[apo]]></dc:creator><pubDate>Mon, 05 Sep 2005 10:12:35 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Tue, 13 Sep 2005 11:19:55 GMT]]></title><description><![CDATA[<p>bei einer Anwendung hab ich auch allen Charts das gleiche PopupMenu zugewiesen und dann z.B. so auf die einzelnen Charts zugegriffen:</p>
<pre><code class="language-cpp">void __fastcall TReportForm::Title1Click(TObject *Sender)
{
TChart *Chart = dynamic_cast&lt;TChart*&gt;(PopupMenu1-&gt;PopupComponent);
if (Chart &amp;&amp; Chart-&gt;ClassNameIs(&quot;TChart&quot;))
    {
    Chart-&gt;Title-&gt;Text-&gt;Clear();
    Chart-&gt;Title-&gt;Text-&gt;Add(Chart-&gt;Name);
    }
}
</code></pre>
<p>[Edit:] dynamic_cast eingebaut</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865279</guid><dc:creator><![CDATA[Linnea]]></dc:creator><pubDate>Tue, 13 Sep 2005 11:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Mon, 05 Sep 2005 10:46:01 GMT]]></title><description><![CDATA[<p>Schön!! Das ist genau das, was ich gebraucht hab!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865290</guid><dc:creator><![CDATA[apo]]></dc:creator><pubDate>Mon, 05 Sep 2005 10:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Mon, 05 Sep 2005 12:09:09 GMT]]></title><description><![CDATA[<p>Ohne dynamic_cast ist das <em>if (Chart)</em> allerdings für'n A.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865361</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Mon, 05 Sep 2005 12:09:09 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Tue, 06 Sep 2005 08:10:15 GMT]]></title><description><![CDATA[<p>Warum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865935</guid><dc:creator><![CDATA[apo]]></dc:creator><pubDate>Tue, 06 Sep 2005 08:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Tue, 06 Sep 2005 08:21:07 GMT]]></title><description><![CDATA[<p>Weil Linneas C-Style Cast auch dann einen NichtNull-Pointer liefert wenn in PopupComponent gar kein TChart drin ist. Dieser Pointer wäre dann natürlich ungültig und würde bei Verwendung eine Zugriffsverletzung liefern.<br />
Sieh mal in der C++ FAQ nach<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39493.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39493.html</a><br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39463.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39463.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/865936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865936</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 06 Sep 2005 08:21:07 GMT</pubDate></item><item><title><![CDATA[Reply to Von wo aus wurde das Kontextmenu aufgerufen?? on Tue, 06 Sep 2005 08:16:49 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>weil bei dem harten C-Style Cast keine Überprüfung durchgeführt wird, ob Sender wirklich gecastet werden kann. Also ist wird Chart nicht auf NULL gesetzt, wenn der Cast nicht möglich ist. Deshalb ist die nachfolgende Überprüfung auf NULL sinnlos.<br />
Wenn man sich bei casts nicht sicher ist, deshalb dynamic_cast mit Überprüfung.<br />
Ansonsten statt dem C-Style Cast auch gleich static_cast nehmen.</p>
<p>/Edit : zu spät...</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/865937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/865937</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 06 Sep 2005 08:16:49 GMT</pubDate></item></channel></rss>