Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Addieren von Edits (https://www.delphipraxis.net/131009-addieren-von-edits.html)

Ouou 17. Mär 2009 13:23


Addieren von Edits
 
Mahlzeit,

hätte da mal ne frage und zwar,

besitze ich auf meinem formular 13 editfelder. jedesmal wenn ich in ein editfeld eine zahl schreibe und zum nächsten edit wechsel soll im edit13 die summe stehen, sodass sie immer addiert wird. also sprich im edit1 steht die zahl 5 und im edit2 die zahl 4, somit soll im edit13 dann die zahl 9 stehen. gibt man im edit3 dann wieder eine zahl ein, soll die summe von edit13 wieder mit der zahl von edit3 addiert werden.

durch einen klick auf einen button habe ich es hinbekommen will es aber so schaffen, dass das feld mit der summe immer gleich addiert wird sobald man das edit wechselt.

hoffe mal das ich es soweit verständlich erklärt habe:).

mfg

mkinzler 17. Mär 2009 13:28

Re: Addieren von Edits
 
Reagiere im .OnExit des Edits

Ouou 17. Mär 2009 13:52

Re: Addieren von Edits
 
habe es soweit hinbekommen nur beim löschen der zahlen kommt ein fehler und zwar steht da:

"im projekt...ist eine exception der klasse EConvertError mit der meldung "" ist kein gültiger integerwert aufgetreten.

kann da jemand nen rat geben was zu machen ist?

mfg

mkinzler 17. Mär 2009 13:55

Re: Addieren von Edits
 
Nimm TryStrToInt() oder StrToIntDef()

Ouou 17. Mär 2009 14:22

Re: Addieren von Edits
 
sry aber irgendwie blick ich des net. ich versteh nicht was für ein parameter ich mit hinschreiben soll...

Fussball-Robby 17. Mär 2009 14:23

Re: Addieren von Edits
 
Zitat:

Zitat von Ouou
sry aber irgendwie blick ich des net. ich versteh nicht was für ein parameter ich mit hinschreiben soll...

Schonmal Parameternamen angeguckt?
Delphi-Quellcode:
function StrToIntDef(const S: string; Default: Integer): Integer;
S ist wie bei StrToInt, Default gibt - welch Wunder - den Defaultwert an, welcher bei einem fehlerhaften String zurückgegeben wird. In deinem Fall am besten 0!

Ouou 17. Mär 2009 14:41

Re: Addieren von Edits
 
also irgendwie steh ich gerade aufm schlauch...

hab des jetzt so gemacht:

StrToIntDef(StrToInt(Edit1.Text,0)+(Edit2.Text,0)) ;

kommt gerade nicht auf die richtige lösung :(

nahpets 17. Mär 2009 14:52

Re: Addieren von Edits
 
Hallo,
Zitat:

Zitat von Ouou
also irgendwie steh ich gerade aufm schlauch...

hab des jetzt so gemacht:

StrToIntDef(StrToInt(Edit1.Text,0)+(Edit2.Text,0)) ;

kommt gerade nicht auf die richtige lösung :(

wie wäre es mit:
Delphi-Quellcode:
  StrToIntDef(Edit1.Text,0)
+ StrToIntDef(Edit2.Text,0)
+ StrToIntDef(Edit3.Text,0)
...

rollstuhlfahrer 17. Mär 2009 14:58

Re: Addieren von Edits
 
HI Ouou,

Zitat:

Zitat von Ouou
StrToIntDef(StrToInt(Edit1.Text,0)+(Edit2.Text,0)) ;

was soll denn das werden? Problem A: Die Syntax stimmt nicht. Problem B: Die Struktur ist auch noch nicht vorhanden. So viel zum negativen. Jetzt zum positiven:
Wenn du zwei Zahlen addieren willst, dann brauchst du eben nun mal Zahlen und keine Zeichenketten. So wie kommt man jetzt an die Zahlen ran?
Delphi-Quellcode:
procedure Add;
var
  Zahl1, Zahl2: Integer;
  Ergebnis: Integer;
begin
  Zahl1 := StrToInt(Edit1.Text);
  Zahl2 := StrToInt(Edit2.TExt);
  Ergebnis := Zahl1 + Zahl2;
end;
Soviel dazu. Jetzt gibts mehrere Möglichkeiten, wie du dein Problem mit den Nicht-Integerwerten behebst.
A) (so wirds bei uns im Info-Unterricht Klasse 11 gemacht)
Delphi-Quellcode:
procedure Add;
var
  Zahl1, Zahl2: Integer;
  Ergebnis: Integer;
begin
  try
    Zahl1 := StrToInt(Edit1.Text);
  except
    Zahl1 := 0;
  end;
  try
    Zahl2 := StrToInt(Edit2.TExt);
  except
    Zahl2 := 0;
  end;
  Ergebnis := Zahl1 + Zahl2;
end;
Das dürfte wohl das am einfachsten zu verstehen sein. Allerdings hoch rechenaufwendig und langsam. Schneller gehts so:
B)
Delphi-Quellcode:
procedure Add;
var
  Zahl1, Zahl2: Integer;
  Ergebnis: Integer;
begin
  Zahl1 := StrToIntDef(Edit1.Text, 0);
  Zahl2 := StrToIntDef(Edit2.TExt, 0);
  Ergebnis := Zahl1 + Zahl2;
end;
Hier wird versucht die Zeichenkette in eine Zahl umzuwandeln. Bei einem Fehler wird der Wert 0 genommen. Es kommt nie zu einer Exception, weshalb man die auch nicht abfangen muss.
Die Ausgabe wirst du wohl selbst realisieren können.

Bernhard

EDIT: Zu lahm...

Ouou 17. Mär 2009 15:20

Re: Addieren von Edits
 
ok danke dir vielmals für den post hat mir sehr geholfen. aber eine frage hätt ich noch für son anfänger wie mir :?. und zwar wie weiss ich dann des ganze ein edit feld zu das mir da dann des ergebnis angezeigt wird.

mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:12 Uhr.
Seite 1 von 2  1 2      

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