AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Summe von Editfelder für Addition

Ein Thema von omega · begonnen am 23. Okt 2004 · letzter Beitrag vom 23. Okt 2004
Antwort Antwort
omega
(Gast)

n/a Beiträge
 
#1

Summe von Editfelder für Addition

  Alt 23. Okt 2004, 11:26
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:
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!';
e8-->e4 Editfelder von rechts nach links!
Summe ist integer und e8..e4 ist byte

Danke im Voraus!

[edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Summe von Editfelder für Addition

  Alt 23. Okt 2004, 11:59
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.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
omega
(Gast)

n/a Beiträge
 
#3

Re: Summe von Editfelder für Addition

  Alt 23. Okt 2004, 14:36
Auch in "integer" ändert sich nichts!
Es wird auch die Summe >9999 ausgewertet, aber nicht unter <10000 !!!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Summe von Editfelder für Addition

  Alt 23. Okt 2004, 16:11
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;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
omega
(Gast)

n/a Beiträge
 
#5

Re: Summe von Editfelder für Addition

  Alt 23. Okt 2004, 17:17
Jo danker erstmal! Habe nun aber folgende längere Variante geschrieben:

Delphi-Quellcode:
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;
[edit=sakura] FAQ-Eintrag zum Stichwort "9""9" Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:25 Uhr.
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