Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Integer lässt '' nicht zusammenrechnen
Waldkauz - Mo 30.03.09 22:45
Titel: Integer lässt '' nicht zusammenrechnen
So, ich habe euch hier sicher schon den letzten Nerv geraubt, aber ich lass einfach bei meinem Projekt nicht locker.
Es ist jetzt programmtechnisch fertig, der letzte Feinschliff fehlt aber noch -
im Edit14 werden die Punkte, bzw. die Werte von Edit9, Edit10 usw. zusammengezählt.
Das Problem ist, wenn jetzt ein, oder mehrere Felder leer ist/sind,weil es keine Punkte gibt, will er das nicht zusammenrechnen (" '' ist kein gültiger Integerwert" - habs aber auch schon mit Null probiert)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| while not EoF(Pflanze) do begin ReadLn(Pflanze,Search); if (Edit5.Text=Search) and (StrToInt(Label9.Caption)>=100) then Edit12.Text:='30'; if (Edit5.Text=Search) and (StrToInt(Label9.Caption)>=60) and (StrToInt(Label9.Caption)<100) then Edit12.Text:='20'; if (Edit5.Text=Search) and (StrToInt(Label9.Caption)>=0) and (StrToInt(Label9.Caption)<60) then Edit12.Text:='10'; if Edit5.Text='' then Edit12.Text:=''; end; Closefile(Pflanze); Edit14.Text:= IntToStr(StrToInt(Edit8.Text)+StrToInt(Edit9.Text)+ StrToInt(Edit10.Text)+StrToInt(Edit11.Text)+StrToint(Edit12.Text)); |
ImbaPanda - Mo 30.03.09 22:49
Du musst vor der Berechnung lediglich überprüfen, ob alle Felder gefüllt sind.
Delphi-Quelltext
1: 2: 3:
| If (Edit9.Text<>'') And (Edit10.Text<>'') And ... Then Else ShowMessage('Es Müssen alle Felder ausgefüllt sein'); |
Narses - Mo 30.03.09 22:49
Moin!
Schau dir mal StrToIntDef() in der DOH an. :idea: ;)
cu
Narses
jfheins - Mo 30.03.09 22:50
Benutze StrToIntDef() - damit kannst du einen Defaultwert angeben, falls der String (aslo der Text im Edit) kein gültiger Integerwert ist ;)
Also StrtointDef(Edit4.Text, 0) gibt 0 zuück wenn im Edit nichts steht ;)
Waldkauz - Mo 30.03.09 22:52
ImbaPanda hat folgendes geschrieben : |
Du musst vor der Berechnung lediglich überprüfen, ob alle Felder gefüllt sind.
Delphi-Quelltext 1: 2: 3:
| If (Edit9.Text<>'') And (Edit10.Text<>'') And ... Then Else ShowMessage('Es Müssen alle Felder ausgefüllt sein'); | |
nein, in Edit9 und Edit10 kommen ja die Punkte, die man für das Geschriebene bekommt.
Und, es kann ja auch sein, dass man keinen Punkt für ein Wort bekommt - dann muss Edit9 bzw Edit 10 usw. ja leer bleiben oder eine Null drin stehen...
Waldkauz - Mo 30.03.09 22:55
jfheins hat folgendes geschrieben : |
Benutze StrToIntDef() - damit kannst du einen Defaultwert angeben, falls der String (aslo der Text im Edit) kein gültiger Integerwert ist ;)
Also StrtointDef(Edit4.Text, 0) gibt 0 zuück wenn im Edit nichts steht ;) |
Funktioniert :)
jaenicke - Mo 30.03.09 22:57
Wobei TryStrToInt vielleicht besser wäre, denn das gibt zurück, ob die Umwandlung erfolgreich war. Was, wenn bei StrToIntDef die Null im Edit steht? ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!