<?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[Formular automatisch schließen]]></title><description><![CDATA[<p>Hallo, ich habe hier 2 Fragen:<br />
Wenn ich unten stehenden Code compiliere und ausführe,<br />
dann erscheint das Formular erst <strong>NACH</strong> abarbeitung<br />
der For-Schleife. Die vorherige Ausgabe</p>
<pre><code>Edit1-&gt;Text=&quot;Hallo&quot;;
</code></pre>
<p>ist nicht sichtbar. Ausserdem erhällt der Anwender keinen Hinweis darauf,<br />
dass das Programm überhaupt läuft.<br />
1. Wie kann ich erreichen, dass das Formular gleich sichtbar wird ?<br />
2. Wie kann erreicht werden, dass sich das Formular nach abarbeitung der<br />
Schleife automatisch schliesst, ohne das der Anwender es wegklicken muss ?</p>
<pre><code>__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
	Edit1-&gt;Text=&quot;Hallo&quot;;
  for(unsigned int i=0; i&lt;1000000; i++)
  {
  	Edit1-&gt;Text=IntToStr(i); // Irgendeine  zeitraubende Berechnung
  }
}
</code></pre>
<p>Gruß,<br />
Terry</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174214/formular-automatisch-schließen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 17:20:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174214.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Feb 2007 09:06:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Formular automatisch schließen on Sat, 24 Feb 2007 09:06:55 GMT]]></title><description><![CDATA[<p>Hallo, ich habe hier 2 Fragen:<br />
Wenn ich unten stehenden Code compiliere und ausführe,<br />
dann erscheint das Formular erst <strong>NACH</strong> abarbeitung<br />
der For-Schleife. Die vorherige Ausgabe</p>
<pre><code>Edit1-&gt;Text=&quot;Hallo&quot;;
</code></pre>
<p>ist nicht sichtbar. Ausserdem erhällt der Anwender keinen Hinweis darauf,<br />
dass das Programm überhaupt läuft.<br />
1. Wie kann ich erreichen, dass das Formular gleich sichtbar wird ?<br />
2. Wie kann erreicht werden, dass sich das Formular nach abarbeitung der<br />
Schleife automatisch schliesst, ohne das der Anwender es wegklicken muss ?</p>
<pre><code>__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
	Edit1-&gt;Text=&quot;Hallo&quot;;
  for(unsigned int i=0; i&lt;1000000; i++)
  {
  	Edit1-&gt;Text=IntToStr(i); // Irgendeine  zeitraubende Berechnung
  }
}
</code></pre>
<p>Gruß,<br />
Terry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234504</guid><dc:creator><![CDATA[Terry]]></dc:creator><pubDate>Sat, 24 Feb 2007 09:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to Formular automatisch schließen on Sat, 24 Feb 2007 10:11:05 GMT]]></title><description><![CDATA[<p>Hi,<br />
Du arbeitest im Ctor des Fensters. Das Fenster wird allerdings erst angezeigt, nachdem dieser abgearbeitet ist. Außerdem wird die Anzeige zwischendurch nicht aktualisiert, wodurch ohnehin das Hallo und alle bis auf die letzte Zahl geschluckt würden. An Deiner Stelle würde ich mit einem Timer arbeiten, den Du in FormShow anstößt. Nach Beendigung der Schleife schreibst Du einfach Close(), und schon schließt sich das Fenster. Das funktioniert allerdings auch nicht im Konstruktor, sondern erst, wenn das Fenster fertig erstellt ist.<br />
Viele Grüße,<br />
Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234524</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234524</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sat, 24 Feb 2007 10:11:05 GMT</pubDate></item><item><title><![CDATA[Reply to Formular automatisch schließen on Sat, 24 Feb 2007 10:43:37 GMT]]></title><description><![CDATA[<p>Hi Christian<br />
Danke für deine Antwort. Diese For-Schleife sollte nur ein Beispiel<br />
für eine längerdauernde Berechnungsroutine sein. In meinem Programm<br />
soll eine Wave-Datei erstellt werden, welche leicht 500 MByte-große<br />
Dateien erzeugt. Das dauert auf meinem PC schon mal ein paar Minuten.<br />
Während dieser Zeit bekome ich vom Programm keine Rückmeldung.<br />
Es erscheint nicht einmal ein Eintrag in der Task-Leiste. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Erst nachdem die Berechnungsroutine fertig ist erscheint das<br />
Formular auf dem Desktop und in der Taskleiste.</p>
<p>Und das mit dem</p>
<pre><code>Close();
</code></pre>
<p>habe ich probiert.<br />
Wenn ich dann die fertige exe-Datei aufrufe, schließt sie sich<br />
nicht nach Abarbeitung des Programmes <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Irgendwas mache ich noch falsch.</p>
<p>Gruß,<br />
Terry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234538</guid><dc:creator><![CDATA[Terry]]></dc:creator><pubDate>Sat, 24 Feb 2007 10:43:37 GMT</pubDate></item><item><title><![CDATA[Reply to Formular automatisch schließen on Sat, 24 Feb 2007 11:06:47 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Was erwartest du wenn die Berechnung im Konstruktor des MainForms erfolgt? Du die Berechnung natürlich in eine andere Methode auslagern die aufgerufen wird <strong>nachdem</strong> das Form angezeigt wird. Da du offenbar aber gleich beim Start des Programms die Berechnung anzeigen und nach der Berechnung das Programm wieder schließen willst kommst du aber um größere Eingriffe nicht herum</p>
<p>- Erstell eine Sicherheitskopie deines Projektes...<br />
- Lagere die Berechnung in eine eigene public-Methode des Forms aus<br />
- Führere in der Berechnung nach jedem Arbeitsschritt <em>Application-&gt;ProcessMessages();</em> aus, vorzugsweise nach Ausgabe von Fortschrittsinformationen<br />
- Öffne die Hauptprojektdatei (&lt;Projektname&gt;.cpp), wo die main-Funktion und das Erzeugen der Forms steht<br />
- Füge den include dort ein</p>
<pre><code class="language-cpp">#include &quot;Form1.h&quot; // Headerdatei des fraglichen Forms
</code></pre>
<p>- Ersetzt die Zeile <em>Application-&gt;Run();</em> durch</p>
<pre><code class="language-cpp">Form1-&gt;Show();
Form1-&gt;MachBerechnung(...); // Berechnung ausführen
... // Programm wird automatisch danach beendet
</code></pre>
<p>Die Frage ist dann ob diese Form der Benutzerführung wirklich sinnvoll ist. Meiner Meinung nach sollte so nur eine Konsolenanwendung im Hintergrund laufen.<br />
GUI-Programme sollten zumindestens auf dem Form noch einen Start-Button sowie vor dem Beenden eine Art Protokoll anzeigen. Dadurch würde sich bei dir nämlich der Ablauf drastisch vereinfachen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234551</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 24 Feb 2007 11:06:47 GMT</pubDate></item><item><title><![CDATA[Reply to Formular automatisch schließen on Sun, 25 Feb 2007 08:38:07 GMT]]></title><description><![CDATA[<p>Hallo akari,<br />
naja, das Ergebnis soll erst <strong>nach</strong> der Berechnung angezeigt werden, aber während der Berechnung sollte der Anwender schon erkennen können, dass das Programm überhaupt läuft. Ebenfalls soll auf einem Progress Bar der Fortschritt der Berechnung angezeigt werden.</p>
<p>Ich verstehe, das das alles nicht in den Konstruktor des MainForms gehört, aber ich weiß nicht wie ich es sonst einbinden soll <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="😕"
    /><br />
Ich habe noch nicht viel Erfahrung mit Windows-Programmierung und verwechsele den Konstruktor des MainForms immer mit der Main-Funktion eines Konsolenprogrammes.</p>
<p>Vermutlich ist die Lösung ganz einfach.</p>
<p>Gruss,<br />
Terry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234968</guid><dc:creator><![CDATA[Terry]]></dc:creator><pubDate>Sun, 25 Feb 2007 08:38:07 GMT</pubDate></item><item><title><![CDATA[Reply to Formular automatisch schließen on Sun, 25 Feb 2007 09:10:17 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Und eine mögliche Lösung, die alle von die genannten Punkte berücksichtigt, habe ich dir beschrieben.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234978</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sun, 25 Feb 2007 09:10:17 GMT</pubDate></item><item><title><![CDATA[Reply to Formular automatisch schließen on Sun, 25 Feb 2007 09:43:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>du könntest deine &quot;Berechnungsroutine&quot; auch Zeitverzögert starten. Zum Beispiel mit einem Timer der ein Interval von - was weiß ich - einer MilSek hat.</p>
<p>mfg, Micha</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234989</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 25 Feb 2007 09:43:38 GMT</pubDate></item><item><title><![CDATA[Reply to Formular automatisch schließen on Sun, 25 Feb 2007 11:46:09 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>vielen Dank für die Vorschläge und Anregungen. Ich werde mal ein wenig damit experimentieren uns sehen was für mich am besten passt.</p>
<p>Gruß,<br />
Terry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1235057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1235057</guid><dc:creator><![CDATA[Terry]]></dc:creator><pubDate>Sun, 25 Feb 2007 11:46:09 GMT</pubDate></item></channel></rss>