Re: problem bei simpler rechenfunktion...
Zitat:
Nunja ohne Fehlermeldung stochern wir trotzdem in Gemüsebeet Bye Christian |
Re: problem bei simpler rechenfunktion...
ahso, ja klar, sorry für den fehler meinerseits... der fehler ist kein fehler direkt im code sondern ein runtime error... er lautet wie folgt:
"Im Projekt Project1.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: "" ist kein gültiger Integerwert'. Prozeß wurde angehalten. Mit einzelnen Anweisungen oder Start folgen." das mit trunc hat nix dran geändert... ich poste euch hier mal kurz den code, den ich komplett habe... er ist umstädnlich aber ich dachte, der fehler könnte durch zu viele klammern und all den kram kommen! so far
Delphi-Quellcode:
der rest des codes is unwichtig, thanx
e
lse begin //spielvorgabe:=(StrToInt(LabeledEdit4.Text*(StrToInt(LabeledEdit3.Text) div 131)- StrToInt(LabeledEdit2.Text)+StrToInt(LabeledEdit1.Text); a:=StrToInt(lauf.Daten.platzpar); b:=StrToInt(LabeledEdit2.Text); c:=StrToInt(LabeledEdit3.Text); d:=StrToInt(LabeledEdit4.Text); x:=trunc(c div 133); y:=trunc(d * x); z:=trunc(y - b); spielvorgabe:=trunc(z + a); Memo1.Lines.Text:=('Spielvorgabe:'+#13+'( HCP x (Slope / 133) - CR + Par )'+#13+#13+IntToStr(spielvorgabe)); end; |
Re: problem bei simpler rechenfunktion...
Die Lösung liegt doch auf der Hand, eins der Umwandlungen
Delphi-Quellcode:
geht schief, da eines der Strings nix enthält und nix ist kein Integer ;)
a := StrToInt( lauf.Daten.platzpar );
b := StrToInt( LabeledEdit2.Text ); c := StrToInt( LabeledEdit3.Text ); d := StrToInt( LabeledEdit4.Text ); Einfach mal Haltepunkte setzen und schauen... spontan tip ih mal auf: lauf.Daten.platzpar... Bye Christian |
Re: problem bei simpler rechenfunktion...
ganz einfach, erst mal prüfen ob etwas im string eingegeben wurde und dann prüfen ob es sich um eine gültige zahl handelt (VAL). erst wenn beides in ordnung ist, kannste dann rechnen... <HTH>
|
Re: problem bei simpler rechenfunktion...
Hi
Ganz genau... Im Editfeld steht kein Zahlenwert. Vermutlich hast du die Vorbesetzung der Eigenschaft Text im Objektinspektor (fast immer der Name des Editfeldes) nicht mit 0 überschrieben und deine Berechnung wird in irgendeinem Ereignis aufgerufen, oder du rufst die Berechnung in Create der Form auf. Edit Vergeßt diesen Beitrag. Die Fehlermeldung deutet auf einen leeren String. Gruß oldmax |
Re: problem bei simpler rechenfunktion...
-Nimm TryStrToInt() oder Val() statt StrToInt()
-überprüfe vorher auf Richtigkeit, der Eingabe -nimm nen MaskEdit, ... |
Re: problem bei simpler rechenfunktion...
also danke erstmal an eure vielen ratschläge, aber leider haben sie mir nicht weitergeholfen... ich habe es spaßeshalber mal extern meines bisherigen programms (komplett neue alles..) ausprobiert! ich wandle lediglich die eingaben aus den 4 feldern in integerwerte um, dann verrechne ich sie wie angegeben und will dies als eine integer variable gespeichert kriegen. dann hab ich euren tipp mit round(..) angewandt, da ansonsten logischerweise nix richtiges zustandekommen kann... aber auch dabei ist nix richtiges rausgekommen! als ergebnis speichert er mir immer eine 1 ab, was allerdings absolut nicht hinkommt! ich werde euch nun einmal ein beispiel geben:
Feld1: 72 Feld2: 69 Feld3: 121 Feld4: 28 diese 4 werde sind in den feldern und werden korrekt in integer umgewandelt. jetzt sollen die werte wie folgt verrechnet werden: (Feld4 * (Feld3 div 133)) - Feld2 + Feld1 die klammern sind nur dazu da, um jegliche fehlerquellen auszuschließen! trotzdem dass ich es eigentlich richtig geklammert habe und alles, kriege ich kein richtiges ergebnis raus! KOTZ :X meine bitte daher: wie löst ihr dieses problem?! und wenn eure lösung eine komplett andere ist, als mein herangehen, dann bin ich auch glücklich, solange es funktioniert!! HELP PLS |
Re: problem bei simpler rechenfunktion...
Was kommt raus und welches Ergebnis erwartest du?
|
Re: problem bei simpler rechenfunktion...
wie ich oben geschrieben habe, spuckt er mir als ergebnis eine 1 aus... wenn man nach meinen angaben rechnen würde, müsste eigentlich 28,4736...rauskommen, wegen round funktion dann halt nur noch 28! aber nix dergleichen findet da statt
|
Re: problem bei simpler rechenfunktion...
Du weisst aber das 121 DIV 133 0 ergibt?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 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