![]() |
VAR Funktion
Hallo zusammen
Ich schreibe ein Program, indem ein Wert der von dem Benutzer über ein Textfeld eingegeben wird in einer Timer-Komponente weiterverarbeitet werden soll. Dazu muss der Wert aber von dem String in das Real Format umgewandelt werden. Dass mach ich im Moment mit der Funktion strtofloat. Falls der Benutzer aber aus Versehen ein Zeichen eingegeben hat liefert das Program eine Fehlermeldung. Das Problem ist, dass der Wert wie gesagt aus einer Timer-Komponente abgefragt wird. Wenn der Timer z.B. auf 1 Sekunde steht, kommt einmal pro Sekunde eine neue Fehlermeldung. Um dieses Problem zu lösen wollte ich die Funktion VAL benutzen. Wenn ich aber eingebe Messier:=VAL(edit1.text); erhalte ich die Compilermessage "Nicht genügend wirkliche Parameter". Kann mir irgendjemand helfen (Habe Messier als Integer deklarier)? Vielen Dank Ludwig |
Re: VAR Funktion
Val ist AFAIK keine Funktion, sondern eine Prozedur und hat nicht einen sondern zwei Parameter.
Einer ist der String, der andere die numerische Variable, in die gespeichert werden soll. In deinem Beispiel müsste es also wie folgt heißen:
Delphi-Quellcode:
Ich habe zwei Varianten angegeben, weil ich nicht mehr weiß, in welcher Reihenfolge die Parameter angegeben werden müsssen: probier's einfach aus.
Val(edit1.text, messier);
//oder Val(messier, edit1.text); MfG Binärbaum |
Re: VAR Funktion
Platziere deinen Cursor auf "Val" und drücke F1, sofort erscheint eine wunderschöne Online-Hilfe, die dir genau verrät, welche Parameter du benutzen musst :zwinker: . Es sei denn, du besitzt nur D2005, dann hast du ein Problem :stupid: .
Eine Alternative wäre ![]() [add] @Binärbaum: Es sind drei :wink: [/add] |
Re: VAR Funktion
Die Lösung findest du in der Online-Hilfe von Delphi.
Einfach den Cursor auf Val setzen und F1 drücken. Dann dem Link Beispiel oder Example folgen. <edit> zu langsam ;-) </edit> |
Re: VAR Funktion
du könntest mit "Try" und "Except" bzw. "Finally" arbeiten, oder du prüfst vorher ob in dem String Zeichen vorkommen die keine Zahl sind.
Delphi-Quellcode:
var ErlaubteZeichen, LEditText: String;
OK: Boolean; LCount, LMax: Integer; begin LEditText := Edit1.Text; ErlaubteZeichen := '01234567890' + DecimalSeparator; LMax := Length(LEditTExt); LCount := 1; OK := True; while OK and (LCount <= LMax) do begin OK := Pos(LEditText[LCount], ErlaubteZeichen) > 0; inc(LCount); end; showmessage(booltostr(OK, true)); |
Re: VAR Funktion
danke an alle, habe dass Problem gelöst.
PS: Die Onlinehilfe streikt bei mir aus irgendeinen Grund... :stupid: Mfg, Ludwig |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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