Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zinsrechner (https://www.delphipraxis.net/124054-delphi-zinsrechner.html)

DeddyH 15. Nov 2008 11:52

Re: Delphi Zinsrechner
 
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.

Siggy 15. Nov 2008 13:12

Re: Delphi Zinsrechner
 
Zitat:

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 &lt;&gt; 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 :-D
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 :wink:

Mfg Siggy


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:13 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz