<?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[event mit mdi child auslösen]]></title><description><![CDATA[<p>hallo</p>
<p>ich möchte feststellen wenn eine mdiform den fokus erhält. in der mainform gibt es eine toolbar und die funktionen darin möchte ich auf das momentan aktive mdichild anwenden. nun habe ich das problem, dass nicht alle werkzeuge auf da aktuell ausgewähle mdi angewendet werden können. wenn also ein mdichild den focus erhält soll die mainform überprüfen um welches es sich handelt und die entsprechenden funktionen aktivieren oder deaktivieren. gibt es hierfür ein event? habe bisher nur die eigenschaft ActiveMDIChild gefunden, dann müsste man aber dauernd überprüfen welches aktiv ist.</p>
<p>ich habe das bisher so gelöst:</p>
<pre><code class="language-cpp">TFormMain *FormMain;
TFormMdiTyp1 *Child1 = new TFormMdiTyp1(Application);
TFormMdiTyp1 *Child2 = new TFormMdiTyp1(Application);
TFormMdiTyp2 *Child3 = new TFormMdiTyp2(Application);

...

void FormMain::MDIFeststellen (void)
{
 if (ActiveMDIChild != NULL)
 {
   if (ActiveMDIChild-&gt;Caption == &quot;Child1&quot; || ActiveMDIChild-&gt;Caption == &quot;Child2&quot;)
   {
     ToolBarAnpassen(&quot;MDITyp1&quot;);
   }
   if ((ActiveMDIChild-&gt;Caption == &quot;Child3&quot;)
   {
     ToolBarAnpassen(&quot;MDITyp2&quot;);
   }
 }
}
</code></pre>
<p>dies ist nur pseudocode um mein problem zu verdeutlichen, also nicht über die allgemeine schreibweise wundern.<br />
mein problem ist jetzt, dass mein programm nicht weiß wann es die funktion MDIFeststellen() aufrufen soll.<br />
weiters möchte ich anschließen auf die mdichilds zugreifen. da ActiveMDIChild nur die funktionen der TForm anbietet habe ich für jedes vorhergesehene unterfenster ein eigenes objekt angelegt. ist dies die einzige methode oder gibt es eine bessere lösung.<br />
beschäftige mich erst seit kurzem mit mdi programmen, deswegen habe ich die kniffs noch nicht so herausen.</p>
<p>kurti</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/144691/event-mit-mdi-child-auslösen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 21:43:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/144691.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Apr 2006 15:33:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to event mit mdi child auslösen on Thu, 20 Apr 2006 15:33:41 GMT]]></title><description><![CDATA[<p>hallo</p>
<p>ich möchte feststellen wenn eine mdiform den fokus erhält. in der mainform gibt es eine toolbar und die funktionen darin möchte ich auf das momentan aktive mdichild anwenden. nun habe ich das problem, dass nicht alle werkzeuge auf da aktuell ausgewähle mdi angewendet werden können. wenn also ein mdichild den focus erhält soll die mainform überprüfen um welches es sich handelt und die entsprechenden funktionen aktivieren oder deaktivieren. gibt es hierfür ein event? habe bisher nur die eigenschaft ActiveMDIChild gefunden, dann müsste man aber dauernd überprüfen welches aktiv ist.</p>
<p>ich habe das bisher so gelöst:</p>
<pre><code class="language-cpp">TFormMain *FormMain;
TFormMdiTyp1 *Child1 = new TFormMdiTyp1(Application);
TFormMdiTyp1 *Child2 = new TFormMdiTyp1(Application);
TFormMdiTyp2 *Child3 = new TFormMdiTyp2(Application);

...

void FormMain::MDIFeststellen (void)
{
 if (ActiveMDIChild != NULL)
 {
   if (ActiveMDIChild-&gt;Caption == &quot;Child1&quot; || ActiveMDIChild-&gt;Caption == &quot;Child2&quot;)
   {
     ToolBarAnpassen(&quot;MDITyp1&quot;);
   }
   if ((ActiveMDIChild-&gt;Caption == &quot;Child3&quot;)
   {
     ToolBarAnpassen(&quot;MDITyp2&quot;);
   }
 }
}
</code></pre>
<p>dies ist nur pseudocode um mein problem zu verdeutlichen, also nicht über die allgemeine schreibweise wundern.<br />
mein problem ist jetzt, dass mein programm nicht weiß wann es die funktion MDIFeststellen() aufrufen soll.<br />
weiters möchte ich anschließen auf die mdichilds zugreifen. da ActiveMDIChild nur die funktionen der TForm anbietet habe ich für jedes vorhergesehene unterfenster ein eigenes objekt angelegt. ist dies die einzige methode oder gibt es eine bessere lösung.<br />
beschäftige mich erst seit kurzem mit mdi programmen, deswegen habe ich die kniffs noch nicht so herausen.</p>
<p>kurti</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1041380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1041380</guid><dc:creator><![CDATA[kurti]]></dc:creator><pubDate>Thu, 20 Apr 2006 15:33:41 GMT</pubDate></item><item><title><![CDATA[Reply to event mit mdi child auslösen on Thu, 20 Apr 2006 15:43:58 GMT]]></title><description><![CDATA[<p>OnActivate !?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1041388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1041388</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 20 Apr 2006 15:43:58 GMT</pubDate></item><item><title><![CDATA[Reply to event mit mdi child auslösen on Thu, 20 Apr 2006 16:01:16 GMT]]></title><description><![CDATA[<p>danke für die schnelle antwort. OnActivate hat mich erst irritiert, da dies im child aufgerufen wird, aber so sollte es funktionieren</p>
<p>[cpp]<br />
TFormMdiTyp1::OnActivate(...)<br />
{<br />
FormMain-&gt;AktivesChildFeststellen();<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1041407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1041407</guid><dc:creator><![CDATA[kurti]]></dc:creator><pubDate>Thu, 20 Apr 2006 16:01:16 GMT</pubDate></item><item><title><![CDATA[Reply to event mit mdi child auslösen on Thu, 20 Apr 2006 16:24:32 GMT]]></title><description><![CDATA[<p>Vielleicht wäre es eleganter, im OnActivate gleich <em>MainForm-&gt;ToolbarAnpassen</em> aufzurufen und als Parameter das aufrufende MDIChild oder dessen Caption zu übergeben. Die Auswertung wird dann direkt in <em>ToolbarAnpassen</em> mit vorgenommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1041425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1041425</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Thu, 20 Apr 2006 16:24:32 GMT</pubDate></item></channel></rss>