![]() |
Summe von Editfelder für Addition
Hallo Leute!
Habe folgendes Problem: Aus 2 Zufallszahlen soll der Benutzer das Ergebnis in jeweiligem Editfeld eintragen (Zehner, Hunderter, Tausender-Stelle)! Die Addierung klappt bei einem fünfstelligen Ergebnis auch super, allerdings nicht bie z.B. vierstelligem Ergebnis.
Delphi-Quellcode:
e8-->e4 Editfelder von rechts nach links!
procedure ();
try e8:= strtoint(edit8.text); edit7.setfocus; except e8 :=0; end; try e7:= strtoint(edit7.text); edit6.setfocus; except e7 :=0; end; try e6:= strtoint(edit6.text); edit5.setfocus; except e6 :=0; end; try e5:= strtoint(edit5.text); edit4.setfocus; except e5 :=0; end; try e4:= strtoint(edit4.text); except e4 :=0; end; Summe:= e4*10000 + e5*1000 + e6*100 + e7*10 + e8; if Summe = (strtoint(edit2.text) + strtoint(edit3.text)) then edit1.text := 'Richtig!'; Summe ist integer und e8..e4 ist byte Danke im Voraus! [edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: Summe von Editfelder für Addition
Ich würde mal raten, das Byte einfach zu klein ist und du in die Edits Zahlen reinschreibst, die dann nicht mehr richtig gespeichert werden. Byte geht gerade mal bis 255.
|
Re: Summe von Editfelder für Addition
Auch in "integer" ändert sich nichts!
Es wird auch die Summe >9999 ausgewertet, aber nicht unter <10000 !!! |
Re: Summe von Editfelder für Addition
Hai omega,
ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS". Ich habe das eben mal mit diesem Code gelöst:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var e4, e5, e6, e7, e8 : Integer; summe : Integer; zahl1, zahl2 : Integer; begin try zahl1 := StrToInt (Edit2.Text); zahl2 := StrToInt (Edit3.Text); e4 := StrToInt (Edit4.Text) * 10000; e5 := StrToInt (Edit5.Text) * 1000; e6 := StrToInt (Edit6.Text) * 100; e7 := StrToInt (Edit7.Text) * 10; e8 := StrToInt (Edit8.Text) * 1; summe := e4 + e5 + e6 + e7 + e8; if (summe = (zahl1 + zahl2)) then begin ShowMessage ('Richtig'); end else begin ShowMessage ('Falsch'); end; except ShowMessage ('Fehler bei der Eingabe'); end; end; |
Re: Summe von Editfelder für Addition
Jo danker erstmal! Habe nun aber folgende längere Variante geschrieben:
Delphi-Quellcode:
[edit=sakura]
if edit8.text <> '' then begin
Summe:=strtoint(edit8.text); end; if edit7.text <> '' then begin Summe:=strtoint(edit7.text)*10+strtoint(edit8.text); end; if edit6.text <> '' then begin Summe:=strtoint(edit6.text)*100+strtoint(edit7.text)*10+strtoint(edit8.text); end; if edit5.text <> '' then begin Summe:=strtoint(edit5.text)*1000+strtoint(edit6.text)*100+strtoint(edit7.text)*10+strtoint(edit8.text); end; if edit4.text <> '' then begin Summe:=strtoint(edit4.text)*10000+strtoint(edit5.text)*1000+strtoint(edit6.text)*100+strtoint(edit7.text)*10+strtoint(edit8.text); end; if ergebnis > 9 then begin if edit8.modified then edit8.setfocus; end; if ergebnis > 99 then begin if edit8.modified then edit7.setfocus; if edit7.modified then edit6.setfocus; end; if ergebnis > 999 then begin if edit8.modified then edit7.setfocus; if edit7.modified then edit6.setfocus; if edit6.modified then edit5.setfocus; end; if ergebnis > 9999 then begin if edit8.modified then edit7.setfocus; if edit7.modified then edit6.setfocus; if edit6.modified then edit5.setfocus; if edit5.modified then edit4.setfocus; end; if Summe = (strtoint(edit2.text) + strtoint(edit3.text)) then begin edit1.text := 'Richtig!'; button1.enabled:=true; end; ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz