<?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[Zeigerumbiegung funktioniert in dem einen Fenster in dem anderen nicht.]]></title><description><![CDATA[<p>In meinem Programm gibt es zwei Formulare.<br />
Zum einen das <strong>HauptFenster</strong> :</p>
<p>Es wird ganz gewöhnlich in der WinMain erstellt und hat in der<br />
Ereignissbehandlung FormCreate eine Zeile in der der Zeiger auf<br />
die <strong>WindowProc umgebogen</strong> wird. Funktioniert einwandfrei.</p>
<pre><code class="language-cpp">void __fastcall THauptFenster::FormCreate(TObject *Sender)
{
HauptFenster-&gt;WindowProc =  myWindowProc;
}
</code></pre>
<p>und das Fenster <strong>Akzentmonitor</strong> :<br />
es wird in einer Rutine instanziert die vom Konstructor des Hauptfensters<br />
aufgerufen wird.</p>
<pre><code class="language-cpp">AkzentMonitor = new TAkzentMonitor (HauptFenster);
</code></pre>
<p>und auch dieses Fenster enthält eine <strong>Umbiegung</strong>. Die löst eine <strong>EAccessViolation</strong> aus.</p>
<pre><code class="language-cpp">void __fastcall TAkzentMonitor::FormCreate(TObject *Sender)
{
     AkzentMonitor-&gt;WindowProc = myWindowProc;        
}
</code></pre>
<p>und zum Testen noch eine in einem ButtonClick.Die Funkioniert wieder einwandfrei.</p>
<pre><code class="language-cpp">void __fastcall TAkzentMonitor::Button1Click(TObject *Sender)
{

     AkzentMonitor-&gt;WindowProc = myWindowProc;
}
</code></pre>
<p>Mich wundert das es in dem einen Fenster funktioniert und in dem anderen nicht.<br />
Bin ich ein Opfer des Zufalls ?</p>
<p>MfG Schlumpi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170306/zeigerumbiegung-funktioniert-in-dem-einen-fenster-in-dem-anderen-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 13 Aug 2026 21:05:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170306.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Jan 2007 11:42:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeigerumbiegung funktioniert in dem einen Fenster in dem anderen nicht. on Sun, 14 Jan 2007 11:42:53 GMT]]></title><description><![CDATA[<p>In meinem Programm gibt es zwei Formulare.<br />
Zum einen das <strong>HauptFenster</strong> :</p>
<p>Es wird ganz gewöhnlich in der WinMain erstellt und hat in der<br />
Ereignissbehandlung FormCreate eine Zeile in der der Zeiger auf<br />
die <strong>WindowProc umgebogen</strong> wird. Funktioniert einwandfrei.</p>
<pre><code class="language-cpp">void __fastcall THauptFenster::FormCreate(TObject *Sender)
{
HauptFenster-&gt;WindowProc =  myWindowProc;
}
</code></pre>
<p>und das Fenster <strong>Akzentmonitor</strong> :<br />
es wird in einer Rutine instanziert die vom Konstructor des Hauptfensters<br />
aufgerufen wird.</p>
<pre><code class="language-cpp">AkzentMonitor = new TAkzentMonitor (HauptFenster);
</code></pre>
<p>und auch dieses Fenster enthält eine <strong>Umbiegung</strong>. Die löst eine <strong>EAccessViolation</strong> aus.</p>
<pre><code class="language-cpp">void __fastcall TAkzentMonitor::FormCreate(TObject *Sender)
{
     AkzentMonitor-&gt;WindowProc = myWindowProc;        
}
</code></pre>
<p>und zum Testen noch eine in einem ButtonClick.Die Funkioniert wieder einwandfrei.</p>
<pre><code class="language-cpp">void __fastcall TAkzentMonitor::Button1Click(TObject *Sender)
{

     AkzentMonitor-&gt;WindowProc = myWindowProc;
}
</code></pre>
<p>Mich wundert das es in dem einen Fenster funktioniert und in dem anderen nicht.<br />
Bin ich ein Opfer des Zufalls ?</p>
<p>MfG Schlumpi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209586</guid><dc:creator><![CDATA[Schlumpi]]></dc:creator><pubDate>Sun, 14 Jan 2007 11:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zeigerumbiegung funktioniert in dem einen Fenster in dem anderen nicht. on Sun, 14 Jan 2007 11:53:48 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>benutze mal anstelle des OnCreate den Konstruktor des jeweiligten Forms (wie es auch allgemein empfohlen wird)</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209600</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 14 Jan 2007 11:53:48 GMT</pubDate></item><item><title><![CDATA[Reply to Zeigerumbiegung funktioniert in dem einen Fenster in dem anderen nicht. on Sun, 14 Jan 2007 12:01:09 GMT]]></title><description><![CDATA[<p>Genau: <a href="http://web.archive.org/web/20041208115505/http://www.bcbdev.com/articles/suggest.htm#oncreate" rel="nofollow">Don't use OnCreate and OnDestroy, use C++ constructors and destructors instead</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209605</guid><dc:creator><![CDATA[Jansen]]></dc:creator><pubDate>Sun, 14 Jan 2007 12:01:09 GMT</pubDate></item><item><title><![CDATA[Reply to Zeigerumbiegung funktioniert in dem einen Fenster in dem anderen nicht. on Sun, 14 Jan 2007 13:54:28 GMT]]></title><description><![CDATA[<p>akari schrieb:</p>
<blockquote>
<p>Hallo<br />
benutze mal anstelle des OnCreate den Konstruktor des jeweiligten Forms (wie es auch allgemein empfohlen wird)</p>
</blockquote>
<p>Ich habs mal probiert.<br />
Das HauptFenster funktioniert immernoch.</p>
<p>Das AkzentmonitorFenster gibt eine Exception und das Programm wird beendet.</p>
<p>Ich hab die Zeile danach mal in die FormActivateBehandlung getan und es Funktioniert.<br />
Es löst zwar das Problem, dennoch bleibt die Verwunderung.</p>
<p>MfG Schlumpi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1209680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1209680</guid><dc:creator><![CDATA[Schlumpi]]></dc:creator><pubDate>Sun, 14 Jan 2007 13:54:28 GMT</pubDate></item></channel></rss>