Zitat von
DeddyH:
Tätige die Fehlermeldungen doch dann, wenn die Fehler auch auftreten.
Delphi-Quellcode:
val(edit1.text, anfangskapital, code);
if code <> 0 then
MessageBox(0,'Fehlerhafte Eingabe in Edit1',nil,0)
else
begin
val(edit3.text, Jahre, code2);
if code <> 0 then
MessageBox(0,'Fehlerhafte Eingabe in Edit3',nil,0);
end;
So in etwa, möglich wäre auch Zwischenspeichern der Fehler und Ausgabe am Ende, das kann man recht variabel handhaben.
Der Tipp hat mir entscheidend weiter geholfen
Vielen Dank.
Ich denke ich dürfte soweit fertig sein. Zum Abschluß noch der komplette Code:
[code=delphi]
var
Form1: TForm1;
code: Integer;
code2: Integer;
Anfangskapital: Integer;
Jahre: Integer;
Endkapital: real;
Zinssatz : real;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
try
val (edit1.text, anfangskapital, code); // E ingabe
val (edit3.text, Jahre, code2); // E ingabe
if (code <>0) and (code2 <> 0) then
begin
MessageDlg ('Eingabefehler:' +#13#13+
'Variable = Anfangskapital' +#13+
'Stelle des Fehlers = ' +intToStr(code) +#13#13+
'Falsches Zeichen = ' + Edit1.text [code]+#13#13#13+
'Variable = Laufzeit' +#13+
'Stelle des Fehlers = ' +intToStr(code2) +#13#13+
'Falsches Zeichen = ' + Edit3.text [code2]+#13#13+
'Bitte Eingabe wiederholen...' +#13+
'Nur ganze Zahlen (0-9) erlaubt!',
mtWarning,[mbOK],0)
end //end if code <> 0 and code2 <>0 then
else if code <> 0 then
MessageDlg ('Eingabefehler:' +#13#13+
'Variable = Anfangskapital' +#13+
'Stelle des Fehlers = ' +intToStr(code) +#13#13+
'Falsches Zeichen = ' + Edit1.text
Code:
+#13#13+
'Bitte Eingabe wiederholen...' +#13+
'Nur ganze Zahlen (0-9) erlaubt!',
mtWarning,[mbOK],0)
else if code2 <> 0 then
MessageDlg ('Eingabefehler:' +#13#13+
'Variable = Laufzeit' +#13+
'Stelle des Fehlers = ' +intToStr(code2) +#13#13+
'Falsches Zeichen = ' + Edit3.text [code2]+#13#13+
'Bitte Eingabe wiederholen...' +#13+
'Nur ganze Zahlen (0-9) erlaubt!',
mtWarning,[mbOK],0)
else if (code = 0) and (code2 = 0) then
begin
if Jahre <=4
then
begin
Zinssatz := 3;
Label4.Caption :=
'mit einem Zinssatz von 3%';
end //end Jahre <=4
else
begin
Zinssatz := 5;
Label4.Caption :=
'mit einem Zinssatz von 5%' ;
end; //end Jahre >4
if Jahre >= 10
then
begin
Zinssatz := 7 ;
Label4.Caption :=
'mit einem Zinssatz von 7%' ;
end; //end Jahre >= 10
begin
Endkapital :=
(Round(100*(Anfangskapital * exp (Jahre * ln (1+ Zinssatz/100))))/100) ;
Label2.Caption := FloatToStr (Endkapital)
end
end //end if code = 0 and code2 = 0 then
except
MessageDlg ('Felder dürfen nicht leer sein!'+#13+
'Falls alle Felder ausgefüllt wurden bitte kleinere Werte benutzen',mtWarning,[mbOk],0);
end;//end try - except
end;//end procedure
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := ('');
Edit3.Text := ('');
Label2.Caption := 'Endkapital';
Label4.Caption := 'Zinssatz';
edit1.SetFocus ;
edit1.color := clyellow;
end; // end button2click
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
edit3.SetFocus;
edit3.Color := clyellow;
edit1.Color := clwhite;
end;
end;
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
Button1.Click;
edit3.Color := clwhite;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
edit1.SetFocus;
edit1.Color := clyellow;
end;
end.
Noch einmal vielen Dank! Wird bestimmt nicht meine letzte Frage gewesen sein
Mfg Siggy