<?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[Exception Handler und SetFocus]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte einen einfachen Taschenrechner mit den Grundfunktionen und 2 Eingabefeldern für Zahlen so erweitern, dass bei einer Falscheingabe:<br />
1. der falsch eingegebene Wert als Meldung angezeigt wird<br />
2. das Feld mit dem falschen Wert in den Focus gesetzt wird<br />
3. die Berechnung bei Falscheingabe nicht fortgesetzt wird</p>
<p>Die Ausgabe der Fehlermeldung und das Setzen des Focus sollen dabei in einer Funktion oder Methode erfolgen.</p>
<p>Programmiert wurden bisher die rechnen2.cpp und die rechnen2.h</p>
<p>Hier die rechnen2.h :</p>
<pre><code>[cpp]

//---------------------------------------------------------------------------

#ifndef rechnen2H
#define rechnen2H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;
#include &lt;ExtCtrls.hpp&gt;
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        TRadioGroup *RadioGroup1;
        TEdit *Edit1;
        TEdit *Edit2;
        TButton *Button1;
        TButton *Button2;
        TLabel *Label1;
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);

private:	// Anwender-Deklarationen
public:		// Anwender-Deklarationen
        __fastcall TForm1(TComponent* Owner);
        void check (int zahl);
        int zahl1;
        int zahl2;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

[/cpp]
</code></pre>
<p>und hier die rechnen2.cpp</p>
<pre><code>[cpp]

//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;rechnen2.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1-&gt;Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int zahl1;
int zahl2;
double ergebnis;
int flag=0;

try {
//Eingaben von Zeichenkette zu int umwandeln
zahl1=StrToInt(Edit1-&gt;Text);
zahl2=StrToInt(Edit2-&gt;Text);

        try {
        check (zahl1);
        ShowMessage (&quot;Ihre Eingabe war: &quot;+ IntToStr(zahl1));
        }

        catch(Exception&amp; Fehler) {
        ShowMessage(Fehler.Message);
        }

        try {
        check (zahl2);
        ShowMessage (&quot;Ihre Eingabe war: &quot;+ IntToStr(zahl2));
        }

        catch(Exception&amp; Fehler) {
        ShowMessage(Fehler.Message);
        }
}
catch(EConvertError&amp;) {
        ShowMessage(&quot;Bei der Konvertierung ist ein Fehler aufgetreten!&quot;);
        }
//Aktuelle Option auswerten und berechnen
switch (RadioGroup1-&gt;ItemIndex)
        {
        case 0:
                ergebnis=zahl1+zahl2;
                break;
        case 1:
                ergebnis=zahl1-zahl2;
                break;
        case 2:
                if(zahl2!=0)
                        ergebnis=(double) zahl1/zahl2;
                else
                        flag=1;
                break;
        case 3:
                ergebnis=zahl1*zahl2;
                break;
        }
//Ausgabe je nach Status von flag
if (flag==0)
        Label1-&gt;Caption=ergebnis;
else
        {
        Label1-&gt;Caption=&quot;Nicht definiert!&quot;;
        }
}

//---------------------------------------------------------------------------
void check (int zahl)
{
if (zahl != int())
        throw Exception (&quot;Die Zahl ist kein gültiger Integerwert&quot;);
        Edit1 -&gt;SetFocus();
}
[/cpp]
</code></pre>
<p>Mein Hauptproblem ist hierbei das Setzen des Focus. Nach Möglichkeit sollte die Funktion den Focus automatisch auf das fehlerhafte Eingabefeld setzen können. Wer kann helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180457/exception-handler-und-setfocus</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 15:28:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180457.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 May 2007 04:18:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exception Handler und SetFocus on Thu, 03 May 2007 04:18:21 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich möchte einen einfachen Taschenrechner mit den Grundfunktionen und 2 Eingabefeldern für Zahlen so erweitern, dass bei einer Falscheingabe:<br />
1. der falsch eingegebene Wert als Meldung angezeigt wird<br />
2. das Feld mit dem falschen Wert in den Focus gesetzt wird<br />
3. die Berechnung bei Falscheingabe nicht fortgesetzt wird</p>
<p>Die Ausgabe der Fehlermeldung und das Setzen des Focus sollen dabei in einer Funktion oder Methode erfolgen.</p>
<p>Programmiert wurden bisher die rechnen2.cpp und die rechnen2.h</p>
<p>Hier die rechnen2.h :</p>
<pre><code>[cpp]

//---------------------------------------------------------------------------

#ifndef rechnen2H
#define rechnen2H
//---------------------------------------------------------------------------
#include &lt;Classes.hpp&gt;
#include &lt;Controls.hpp&gt;
#include &lt;StdCtrls.hpp&gt;
#include &lt;Forms.hpp&gt;
#include &lt;ExtCtrls.hpp&gt;
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
        TRadioGroup *RadioGroup1;
        TEdit *Edit1;
        TEdit *Edit2;
        TButton *Button1;
        TButton *Button2;
        TLabel *Label1;
        void __fastcall Button2Click(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);

private:	// Anwender-Deklarationen
public:		// Anwender-Deklarationen
        __fastcall TForm1(TComponent* Owner);
        void check (int zahl);
        int zahl1;
        int zahl2;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

[/cpp]
</code></pre>
<p>und hier die rechnen2.cpp</p>
<pre><code>[cpp]

//---------------------------------------------------------------------------

#include &lt;vcl.h&gt;
#pragma hdrstop

#include &quot;rechnen2.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form1-&gt;Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int zahl1;
int zahl2;
double ergebnis;
int flag=0;

try {
//Eingaben von Zeichenkette zu int umwandeln
zahl1=StrToInt(Edit1-&gt;Text);
zahl2=StrToInt(Edit2-&gt;Text);

        try {
        check (zahl1);
        ShowMessage (&quot;Ihre Eingabe war: &quot;+ IntToStr(zahl1));
        }

        catch(Exception&amp; Fehler) {
        ShowMessage(Fehler.Message);
        }

        try {
        check (zahl2);
        ShowMessage (&quot;Ihre Eingabe war: &quot;+ IntToStr(zahl2));
        }

        catch(Exception&amp; Fehler) {
        ShowMessage(Fehler.Message);
        }
}
catch(EConvertError&amp;) {
        ShowMessage(&quot;Bei der Konvertierung ist ein Fehler aufgetreten!&quot;);
        }
//Aktuelle Option auswerten und berechnen
switch (RadioGroup1-&gt;ItemIndex)
        {
        case 0:
                ergebnis=zahl1+zahl2;
                break;
        case 1:
                ergebnis=zahl1-zahl2;
                break;
        case 2:
                if(zahl2!=0)
                        ergebnis=(double) zahl1/zahl2;
                else
                        flag=1;
                break;
        case 3:
                ergebnis=zahl1*zahl2;
                break;
        }
//Ausgabe je nach Status von flag
if (flag==0)
        Label1-&gt;Caption=ergebnis;
else
        {
        Label1-&gt;Caption=&quot;Nicht definiert!&quot;;
        }
}

//---------------------------------------------------------------------------
void check (int zahl)
{
if (zahl != int())
        throw Exception (&quot;Die Zahl ist kein gültiger Integerwert&quot;);
        Edit1 -&gt;SetFocus();
}
[/cpp]
</code></pre>
<p>Mein Hauptproblem ist hierbei das Setzen des Focus. Nach Möglichkeit sollte die Funktion den Focus automatisch auf das fehlerhafte Eingabefeld setzen können. Wer kann helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277909</guid><dc:creator><![CDATA[galacticstar]]></dc:creator><pubDate>Thu, 03 May 2007 04:18:21 GMT</pubDate></item><item><title><![CDATA[Reply to Exception Handler und SetFocus on Thu, 03 May 2007 07:06:06 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Übergib einfach zusätzlich an die Funktion check noch einen Zeiger auf das TEdit, aus dem du die Zahl geholt hast.</p>
<p>Btw. gehört das ins Builder-Subforum.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1277947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1277947</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 03 May 2007 07:06:06 GMT</pubDate></item><item><title><![CDATA[Reply to Exception Handler und SetFocus on Thu, 03 May 2007 12:10:28 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-2.html" rel="nofollow">VCL/CLX (Borland C++ Builder)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1278076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1278076</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 03 May 2007 12:10:28 GMT</pubDate></item><item><title><![CDATA[Reply to Exception Handler und SetFocus on Sat, 05 May 2007 03:38:45 GMT]]></title><description><![CDATA[<p>[quote=&quot;akari&quot;]Hallo</p>
<p>Übergib einfach zusätzlich an die Funktion check noch einen Zeiger auf das TEdit, aus dem du die Zahl geholt hast.</p>
<p>Btw. gehört das ins Builder-Subforum.</p>
<p>bis bald<br />
akari[/quote]</p>
<p>Danke akari, das hat geholfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1279098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1279098</guid><dc:creator><![CDATA[galacticstar]]></dc:creator><pubDate>Sat, 05 May 2007 03:38:45 GMT</pubDate></item></channel></rss>