![]() |
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 |
Re: Addieren von Edits
Reagiere im .OnExit des Edits
|
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 |
Re: Addieren von Edits
Nimm TryStrToInt() oder StrToIntDef()
|
Re: Addieren von Edits
sry aber irgendwie blick ich des net. ich versteh nicht was für ein parameter ich mit hinschreiben soll...
|
Re: Addieren von Edits
Zitat:
Delphi-Quellcode:
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!
function StrToIntDef(const S: string; Default: Integer): Integer;
|
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 :( |
Re: Addieren von Edits
Hallo,
Zitat:
Delphi-Quellcode:
StrToIntDef(Edit1.Text,0)
+ StrToIntDef(Edit2.Text,0) + StrToIntDef(Edit3.Text,0) ... |
Re: Addieren von Edits
HI Ouou,
Zitat:
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:
Soviel dazu. Jetzt gibts mehrere Möglichkeiten, wie du dein Problem mit den Nicht-Integerwerten behebst.
procedure Add;
var Zahl1, Zahl2: Integer; Ergebnis: Integer; begin Zahl1 := StrToInt(Edit1.Text); Zahl2 := StrToInt(Edit2.TExt); Ergebnis := Zahl1 + Zahl2; end; A) (so wirds bei uns im Info-Unterricht Klasse 11 gemacht)
Delphi-Quellcode:
Das dürfte wohl das am einfachsten zu verstehen sein. Allerdings hoch rechenaufwendig und langsam. Schneller gehts so:
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; B)
Delphi-Quellcode:
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.
procedure Add;
var Zahl1, Zahl2: Integer; Ergebnis: Integer; begin Zahl1 := StrToIntDef(Edit1.Text, 0); Zahl2 := StrToIntDef(Edit2.TExt, 0); Ergebnis := Zahl1 + Zahl2; end; Die Ausgabe wirst du wohl selbst realisieren können. Bernhard EDIT: Zu lahm... |
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 02:32 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-2025 by Thomas Breitkreuz