Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Summe von Editfelder für Addition (https://www.delphipraxis.net/32437-summe-von-editfelder-fuer-addition.html)

omega 23. Okt 2004 10:26


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:
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]

Nikolas 23. Okt 2004 10:59

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.

omega 23. Okt 2004 13:36

Re: Summe von Editfelder für Addition
 
Auch in "integer" ändert sich nichts!
Es wird auch die Summe >9999 ausgewertet, aber nicht unter <10000 !!!

Sharky 23. Okt 2004 15:11

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;

omega 23. Okt 2004 16:17

Re: Summe von Editfelder für Addition
 
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]


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:41 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