Einzelnen Beitrag anzeigen

diavy

Registriert seit: 11. Apr 2012
54 Beiträge
 
#1

Summe einer Serie von Zahlen mit Hilfe von 2 Edit-boxen

  Alt 24. Aug 2012, 14:51
Hallo zusammen.

Meine Aufgabestellung ist folgendermaßen:
Schreibe ein Programm das die Summe einer Serie von eingegebenen Zahlen rechnet, benutze dafür 2 Edit-Boxen und einen Button zum "nullen" der Summe.

Zunächst hab ich es damit probiert:
...Edit1Change... (prozedur)
if Edit1.Text <> '' then Label1.Caption:=IntToStr(StrToInt(Label1.Caption)+ StrToInt(Edit1.Text))

und das gleiche mir Edit2.

Problem: Mehrstellige Zahlen.

Da hab' ich mir gleich gedacht, dass es doch optimal wäre, wenn ich statt der Change-Prozedur eine Prozedur haben würde, die bei einem "Enter"-Drücken in der Edit-Box auslösen würde. Darauf folgend habe ich mir die Events mal angeschaut, und von Namen her hat "OnEnter" gleich danach ausgeschaut, als wäre es exakt das, was ich wollte. Ich hab also de Prozedur beim Event TForm1.Edit1Enter eingetragen, es ist jedoch schlichtwe nichts passiert als ich nach dem Eingeben der Zahlen "Enter" in der Edit-Box gedrückt habe.

Aufgrund des Mangels an Ideeen, wie ich es mit "Enter" umsetzen könnte, habe ich also versucht das Problem zu umgehen, was wiederum keine Lösung zum Problem ist:

Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text <> 'then
        begin
        if (StrToInt(Edit1.Text)/10) >=1 then
                Label1.Caption:=FloatToStr(StrToInt(Label1.Caption)+StrToInt(edit2.Text)- StrToInt(edit2.text)/10)
        else Label1.Caption:=IntToStr(StrToInt(Label1.Caption)+StrToInt(Edit1.Text));
        end;
end;
Hierbei ist natürlich das Problem dass man den Fall von mehr als 2-stelligen Zahlen nicht integriert hat. Hinzüglich hat man ein Problem, wenn man eine 2-stellige Zahl entfernt.
Beispiel: man möchte 12 durch 7 eretzen:
12 "<-" 1 "<-" 7
Hierbei wird 1 nochmal zur Summe hinzugefügt.

Meine Frage ist nun ob es doch eine Möglichkeit gibt, um meine Idee mit Enter umzusetzen, oder ob ich mein bestehendes Programm weiterführen, und für all solche Fälle vorbereiten muss?

Grüße
  Mit Zitat antworten Zitat