Einzelnen Beitrag anzeigen

Siggy

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

Re: Delphi Zinsrechner

  Alt 14. Nov 2008, 17:28
So... Ersteinmal vielen Dank für die vielen Antworten.
Hat mir sehr geholfen muss ich sagen =)


Zitat von Sir Rufo:
Zitat von Siggy:
Unser Lehrer hat gemeint, ist halt so aber irgendwie kann ic das nicht glauben. Deswegen meine 1. Frage:
Wie kann man das verbessern??
Den Leerkörper wechseln! ... eine andere Möglichkeit sehe ich da nicht ...
Mh geht nicht, da unser Lehrer der einzige an der Schule ist der Informatik anbietet.
Bin an nem normalen Gymnasium und wie schon gesagt ist so ne art AG. Ohne den Lehrer würde es gar nicht angeboten werden.


Zitat von Sir Rufo:
[...]
Statt
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
  Edit2.SetFocus;
end;
würde ich das eher in OnShow platzieren
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  Edit2.SetFocus;
end;
Habe das 1. gestern abend noch gelesen und so gemacht. Hat wunderbar funktioniert. Was ist nun der unterschied zwischen:

FormActivate und OnShow ?

Zu meinem 2. Problem:
Das habe ich nun so gelöst:

[code=delphi]
if code = 0 then
begin
Endkapital :=
(Round(100*(Anfangskapital * exp (Jahre * ln (1+ Zinssatz/100))))/100) ; // V erarbeitung
Label2.Caption := FloatToStr (Endkapital)
end //end if code = 0

else // A usgabe
Showmessage ('Eingabefehler:' +#13+
'Variable = Laufzeit' +#13+
'Stelle =' +intToStr(code) +#13+
'Falsches Zeichen=' + Edit3.text
Code:
+#13#13+
               'Bitte Eingabe wiederholen...');
end; //end else
Klappt auch einwandfrei. Mit einer Ausnahme: Es wird mir nur der Fehler angezeigt, wenn bei der Variablen 'Laufzeit' ein Fehler gemacht wurde. Allerdings will ich ja auch,dass wenn jemand bei der Variable 'Anfangskapital' eine falsche Eingabe macht eine Nachricht erhält.

Unser Lehrer hat das so gemacht:

[code=delphi]
begin

try
Anfangskapital := StrToFloat (edit1.text) ;
Laufzeit.SetFocus ;

except
Val (edit1.text, wert, code);
ShowMessage (‘Eingabefehler!’ +#13#13+
'Variable = Anfangskapital' +#13+
'Stelle = ' +IntToStr(code) +#13+
'Falsches Zeichen=' + Edit1.text
Code:
            +#13#13+
        'Bitte Eingabe wiederholen...')

   Edit1.text := ’’ ;     // oder Edit1.clear;
   Shortint(key) := 0 ;    

// EDIT!!!: Hier hat unser Lehrer gemeint, er weiss nicht wieso man das hier reinschreiben muss, damit es funktioniert. Naja ich denke mal dass es hier einige geben wird, die das wissen. Deshalb wäre ich sehr verbunden wenn mir das jemand erklären könnte ;) Also das " ShortInt(key) = 0; " meine ich.

   Edit1.SetFocus;
end;
Und dann einfach auch noch für die Laufzeit das gleiche mit der anderen Variable und dem anderen Editfeld.
Ich finde das allerdings umständlicher als es mit
[delphi]
if code = 0 then
begin
[...]

else

[...]

end;
[/delhpi]
zu machen. Ist es zu kompliziert das bei mir jetz auch noch für die Variable 'Anfangskapital' einzubinden oder kann das ein Anfänger wie ich es bin verstehen?
Falls ja dann wäre ich über weitere Vorschläge sehr dankbar!
Noch einmal vielen Dank an das was bis jetzt vorgeschlangen wurde. Und ich hoffe niemand ist sauer dass ich nicht auf alle Vorschläge eingegangen bin

Mfg Siggy
  Mit Zitat antworten Zitat