Einzelnen Beitrag anzeigen

Siggy

Registriert seit: 25. Okt 2008
20 Beiträge
 
#22

Re: Delphi Zinsrechner

  Alt 15. Nov 2008, 13:12
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
  Mit Zitat antworten Zitat