<?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[Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot;]]></title><description><![CDATA[<p>Hallo folgendes Problem</p>
<p>wenn man einen Button klickt soll ein neues TForm geöffnet werden, in welchem die Seriellen Schnittstellen ausgewählt werden können.<br />
Hier der Code zum Button Click</p>
<pre><code>void __fastcall TfrmHaupt::btnOptionenClick(TObject *Sender)
{
/*extern unsigned char	Schnittstelle;
extern bool             NOP_Anzeige;*/
AnsiString StPortvorhanden[256];
int inAnzPorts=0;
HANDLE     Com;
AnsiString PortName;
TRadioButton *RBCom[255];

// alle Com-Ports bestimmen
for (int i = 1; i &lt;= 256; ++i)
{
  PortName = &quot;COM&quot; + IntToStr(i);

  // Port öffnen
  Com      = ::CreateFile(PortName.c_str(),
                          GENERIC_READ | GENERIC_WRITE,
                          0,
                          0,
                          OPEN_EXISTING,
                          FILE_ATTRIBUTE_NORMAL,
                          0);

  if (Com != INVALID_HANDLE_VALUE)
  {
    // alle gefundenen Ports in ne Listbox packen
    inAnzPorts++;
    StPortvorhanden[inAnzPorts]=PortName;

    // Port wieder schliessen
    PurgeComm(Com, PURGE_RXABORT);
    CloseHandle(Com);
  }
}
frmOptionen = new TfrmOptionen(this);
for (int k=1;k&lt;=inAnzPorts;k++)
{
       RBCom[k]= new TRadioButton(frmOptionen);
       RBCom[k]-&gt;Parent = frmOptionen;
       frmOptionen-&gt;Panel1-&gt;InsertControl(RBCom[k]);
       RBCom[k]-&gt;Width = 70;
       RBCom[k]-&gt;Height = 20;
       RBCom[k]-&gt;Top = 10+((k-1)*35);
       RBCom[k]-&gt;Left = 355;
       RBCom[k]-&gt;Alignment= taRightJustify;
       RBCom[k]-&gt;Caption= StPortvorhanden[k];

}

frmOptionen-&gt;ShowModal();
delete frmOptionen;

}
</code></pre>
<p>so das scheint auch zu klappen nur beim Schließen des ganzen über den Button<br />
Schließen</p>
<pre><code>void __fastcall TfrmOptionen::btnCloseClick(TObject *Sender)
{
        frmOptionen-&gt;Close();
}
</code></pre>
<p>kommt obiger Fehler woran kann das liegen?</p>
<p>Merci für eure Hilfe</p>
<p>MfG Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/126592/beim-schließen-einer-tform-kommt-der-fehler-quot-abnormal-programm-termination-quot</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 21:53:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/126592.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 16 Nov 2005 15:02:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Wed, 16 Nov 2005 15:02:46 GMT]]></title><description><![CDATA[<p>Hallo folgendes Problem</p>
<p>wenn man einen Button klickt soll ein neues TForm geöffnet werden, in welchem die Seriellen Schnittstellen ausgewählt werden können.<br />
Hier der Code zum Button Click</p>
<pre><code>void __fastcall TfrmHaupt::btnOptionenClick(TObject *Sender)
{
/*extern unsigned char	Schnittstelle;
extern bool             NOP_Anzeige;*/
AnsiString StPortvorhanden[256];
int inAnzPorts=0;
HANDLE     Com;
AnsiString PortName;
TRadioButton *RBCom[255];

// alle Com-Ports bestimmen
for (int i = 1; i &lt;= 256; ++i)
{
  PortName = &quot;COM&quot; + IntToStr(i);

  // Port öffnen
  Com      = ::CreateFile(PortName.c_str(),
                          GENERIC_READ | GENERIC_WRITE,
                          0,
                          0,
                          OPEN_EXISTING,
                          FILE_ATTRIBUTE_NORMAL,
                          0);

  if (Com != INVALID_HANDLE_VALUE)
  {
    // alle gefundenen Ports in ne Listbox packen
    inAnzPorts++;
    StPortvorhanden[inAnzPorts]=PortName;

    // Port wieder schliessen
    PurgeComm(Com, PURGE_RXABORT);
    CloseHandle(Com);
  }
}
frmOptionen = new TfrmOptionen(this);
for (int k=1;k&lt;=inAnzPorts;k++)
{
       RBCom[k]= new TRadioButton(frmOptionen);
       RBCom[k]-&gt;Parent = frmOptionen;
       frmOptionen-&gt;Panel1-&gt;InsertControl(RBCom[k]);
       RBCom[k]-&gt;Width = 70;
       RBCom[k]-&gt;Height = 20;
       RBCom[k]-&gt;Top = 10+((k-1)*35);
       RBCom[k]-&gt;Left = 355;
       RBCom[k]-&gt;Alignment= taRightJustify;
       RBCom[k]-&gt;Caption= StPortvorhanden[k];

}

frmOptionen-&gt;ShowModal();
delete frmOptionen;

}
</code></pre>
<p>so das scheint auch zu klappen nur beim Schließen des ganzen über den Button<br />
Schließen</p>
<pre><code>void __fastcall TfrmOptionen::btnCloseClick(TObject *Sender)
{
        frmOptionen-&gt;Close();
}
</code></pre>
<p>kommt obiger Fehler woran kann das liegen?</p>
<p>Merci für eure Hilfe</p>
<p>MfG Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/919265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/919265</guid><dc:creator><![CDATA[bierber]]></dc:creator><pubDate>Wed, 16 Nov 2005 15:02:46 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Wed, 16 Nov 2005 15:45:02 GMT]]></title><description><![CDATA[<p>frmOptionen dürfte bereits von der Applikation verwendet werden. Versuch es mal mit einem anderen Namen für das dynamisch erstellte Formular.</p>
<p>Grüße Joe_M.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/919324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/919324</guid><dc:creator><![CDATA[zufaulzumeinloggen]]></dc:creator><pubDate>Wed, 16 Nov 2005 15:45:02 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Sun, 20 Nov 2005 10:23:33 GMT]]></title><description><![CDATA[<p>Hallo Joe Hallo at all</p>
<p>also hab lange nichts mehr von mir hören lassen nun bin ich aber wieder etwas dran.</p>
<p>Also das Problem trat erst auf nachdem ich die Radiobuttons eingefügt habe. Ist das überhaupt korrekt die so im Aufruf zu erzeugen oder gibt es bei Borland C auch eine Funktion die beim öffnen der Form Aufgerufen wird (wer sich in Visual Basic auskennt ich mein sowas wie FormCreate) und muß ich die erzeugten RadioButtons vor dem Terminieren der Forms wieder löschen?</p>
<p>Viele Fragen wer weiß noch was?</p>
<p>Vielen Dank für eure Hilfe</p>
<p>MfG Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/921994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/921994</guid><dc:creator><![CDATA[bierber]]></dc:creator><pubDate>Sun, 20 Nov 2005 10:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Sun, 20 Nov 2005 15:54:30 GMT]]></title><description><![CDATA[<p>Borland C kennt keine Formulare</p>
<p>Die Borland C++ Builder kennen OnCreate. Einfach mal im Objektinspektor unter Ereignisse nachschauen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/922368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/922368</guid><dc:creator><![CDATA[Christian211]]></dc:creator><pubDate>Sun, 20 Nov 2005 15:54:30 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Mon, 21 Nov 2005 10:08:43 GMT]]></title><description><![CDATA[<p>nimm hier das <strong>frmOptionen-&gt;</strong> raus</p>
<p>[cpp]<br />
void __fastcall TfrmOptionen::btnCloseClick(TObject *Sender)<br />
{<br />
frmOptionen-&gt;Close(); // <strong>frmOptionen</strong> ist hier falsch!<br />
}<br />
[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923089</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Mon, 21 Nov 2005 10:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Mon, 21 Nov 2005 11:02:13 GMT]]></title><description><![CDATA[<p>So habe das frmOption rausgenommen und die erzeugung der Radiobuttons bei OnCreate eingefügt. nun funktioniert es einmal, beim zweitenmal schließen kommt wieder Abnormale Programm termination wobei davor eine Zugriffsverletzung auf die Adresse 004981F4 Lesen von Adresse EBBE6632</p>
<p>hier mal der abgewandelte Code</p>
<p>Form erzeugen</p>
<pre><code>frmOptionen = new TfrmOptionen(this);
frmOptionen-&gt;ShowModal();
delete frmOptionen;
</code></pre>
<p>Das erzeugen der Radiobuttons</p>
<pre><code>void __fastcall TfrmOptionen::FormCreate(TObject *Sender)
{
AnsiString StPortvorhanden[256];
int inAnzPorts=0;
HANDLE     Com;
AnsiString PortName;
TRadioButton *RBCom[255];
// alle Com-Ports bestimmen
for (int i = 1; i &lt;= 256; ++i)
{
  PortName = &quot;COM&quot; + IntToStr(i);

  // Port öffnen
  Com      = ::CreateFile(PortName.c_str(),
                          GENERIC_READ | GENERIC_WRITE,
                          0,
                          0,
                          OPEN_EXISTING,
                          FILE_ATTRIBUTE_NORMAL,
                          0);

  if (Com != INVALID_HANDLE_VALUE)
  {
    // alle gefundenen Ports in ein Array packen
    inAnzPorts++;
    StPortvorhanden[inAnzPorts]=PortName;

    // Port wieder schliessen
    PurgeComm(Com, PURGE_RXABORT);
    CloseHandle(Com);
  }
}

       for (int k=1;k&lt;=inAnzPorts;k++)
       {
           RBCom[k]= new TRadioButton(frmOptionen);
           RBCom[k]-&gt;Parent = frmOptionen;
           Panel1-&gt;InsertControl(RBCom[k]);
           RBCom[k]-&gt;Width = 70;
           RBCom[k]-&gt;Height = 20;
           RBCom[k]-&gt;Top = 10+((k-1)*35);
           RBCom[k]-&gt;Left = 355;
           RBCom[k]-&gt;Alignment= taRightJustify;
           RBCom[k]-&gt;Caption= StPortvorhanden[k];

        }

}
</code></pre>
<p>und das beenden des Forms mit einem Button</p>
<pre><code>void __fastcall TfrmOptionen::btnCloseClick(TObject *Sender)
{
        Close();
}
</code></pre>
<p>Vielleicht kann mir jemand sagen woran das liegt? Bei Basic kammen solche Probleme meist wenn man die Radiobuttons erneut mit gleichem Index erzeugt erzeugt aber warum kommt dann der Fehler erst beim schließen</p>
<p>Vielen Dank auf jedenfall mal Felix</p>
<p>P.S.: Es scheint effektiv an den RadiButtons zu liegen, wenn ich die Funktion zum erzeugen heraus nehme läuft es ohne Probleme</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923116</guid><dc:creator><![CDATA[bierber]]></dc:creator><pubDate>Mon, 21 Nov 2005 11:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Mon, 21 Nov 2005 11:15:59 GMT]]></title><description><![CDATA[<p>Ich kann nichts zu dem Problem sagen, aber wieso nimmst du RadioButtons?<br />
Wäre eine Combobox nicht einfacher?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923123</guid><dc:creator><![CDATA[Beliah]]></dc:creator><pubDate>Mon, 21 Nov 2005 11:15:59 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Mon, 21 Nov 2005 11:34:18 GMT]]></title><description><![CDATA[<p>zufaulzumeinloggen schrieb:</p>
<blockquote>
<p>frmOptionen dürfte bereits von der Applikation verwendet werden. Versuch es mal mit einem anderen Namen für das dynamisch erstellte Formular.</p>
</blockquote>
<p>Solange Du frmOptionen nicht aus der Liste der automatisch erzeugten Formulare herausnimmst und darauf bestehst, den globalen Formularnamen zu verwenden, hast Du ein Problem. Ich sehe allerdings auch nirgendwo die Stelle, an der Du die Radiobuttons wieder 'deletest'.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923139</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923139</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 21 Nov 2005 11:34:18 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Mon, 21 Nov 2005 11:38:45 GMT]]></title><description><![CDATA[<p>Das Problem hat sich jetzt mal soweit erledigt. Ich hab den Tip mit der Combobox befolgt nun kommt keine Fehlermeldung mehr</p>
<p>Merci für alle Hilfethemen</p>
<p>MfG Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923143</guid><dc:creator><![CDATA[bierber]]></dc:creator><pubDate>Mon, 21 Nov 2005 11:38:45 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Mon, 21 Nov 2005 11:38:57 GMT]]></title><description><![CDATA[<p>Es wird doch frmOptionen beim erstellen übergeben, sollte dann nicht die Form das löschen übernehmen?</p>
<p>Dazu muss man natürlich die Form löschen nachdem sie geschlossen wurde...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923144</guid><dc:creator><![CDATA[Beliah]]></dc:creator><pubDate>Mon, 21 Nov 2005 11:38:57 GMT</pubDate></item><item><title><![CDATA[Reply to Beim Schließen einer TForm kommt der Fehler &amp;quot;Abnormal Programm termination&amp;quot; on Mon, 21 Nov 2005 11:43:24 GMT]]></title><description><![CDATA[<p>Das ist noch die Frage, solange die Applikation davon ausgeht, dass frmOptionen von ihr verwaltet wird, führt das zu Problemen.<br />
Die Applikation hat bereits eine Instanz von frmOptionen erzeugt. Dann geht bierber hin und erzeugt eine neue Instanz von frmOptionen, ohne die alte freizugeben. Dann löscht er die Form, ohne den Zeiger auf NULL zu setzen, oder eine neue Instanz anzulegen. Beim Beenden der Applikation versucht diese dann frmOptionen freizugeben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/923150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/923150</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 21 Nov 2005 11:43:24 GMT</pubDate></item></channel></rss>