| Autor |
Beitrag |
NetZwerg
      
Beiträge: 448
Slackware 10.1
Kylix 3, D5 Standard
|
Verfasst: So 04.04.04 12:57
Hallo,
ich habe eine Edit-Feld (Name: Zahl) dessen Inhalt ich per StrToInt() in eine Zahl konvertieren möchte. Allerdings möchte ich, dass mein Programm prüft, ob mein Zahl-Feld einen gültigen Integer-Wert oder Text enthält. ich hab ees so versucht:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button1Click(Sender: TObject); var IrgendeineVariable: integer; begin if StrToInt(Zahl.text) <> S_OK then ShowMessage('Bitte geben sie eine Zahl ein!') else irgendeineVariable := StrToInt(Zahl.text); end; |
wenn ich jetzt einen text in das fedld eingebe, erscheint allerdings nur die Fehlermeldung
'Der Text den ich eingegeben habe' ist kein gültiger Inetegerwert.
cYa, Dave 
_________________ "Manche Leute drücken nur deshalb ein Auge zu, damit sie besser zielen können."
Billy Wilder, amer. Filmregisseur
|
|
Motzi
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: So 04.04.04 13:01
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); var IrgendeineVariable: integer; begin try IrgendeineVariable := StrToInt(Zahl.text); except ShowMessage('Bitte geben sie eine Zahl ein!'); end; end; |
_________________ gringo pussy cats - eef i see you i will pull your tail out by eets roots!
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: So 04.04.04 13:24
Für so etwas sollte man keine Exceptions verwenden. Exceptions sind wirklich nur für Ausnahmen gedacht. Du solltest Val verwenden. Steht in der Hilfe beschrieben, wie man das benutzt.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Motzi
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: So 04.04.04 13:31
| Peter Lustig hat folgendes geschrieben: | | Für so etwas sollte man keine Exceptions verwenden. Exceptions sind wirklich nur für Ausnahmen gedacht. |
Ja, aber manchmal trotzdem sehr praktisch..!
Aber wenn wir schonmal dabei sind.. Möglicherweise kann StrToIntDef() auch ganz interesant für dich sein.. 
_________________ gringo pussy cats - eef i see you i will pull your tail out by eets roots!
|
|
NetZwerg 
      
Beiträge: 448
Slackware 10.1
Kylix 3, D5 Standard
|
Verfasst: So 04.04.04 16:57
InToStrDef() wäre theoretisch gut, nur soll kein Standartwert zurückgegeben werden, deshalb schlecht! 
_________________ "Manche Leute drücken nur deshalb ein Auge zu, damit sie besser zielen können."
Billy Wilder, amer. Filmregisseur
|
|
FaTaLGuiLLoTiNe
      
Beiträge: 200
Erhaltene Danke: 5
Windows 7, Windows 8.1
Delphi XE
|
Verfasst: Di 27.04.04 19:37
Ich weiss ja nicht genau, aber gibt's da nicht auch ne Funktion IsNumeric(String):Boolean???
// Oh, geht wahrscheinlich gar nicht, weil wenn's Numeric ist muss es ja noch kein Integer sein, sorry.
_________________ << FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Di 27.04.04 19:41
(1) Ist der Thread schon etwas älter und
(2) habe ich bereits geschrieben, wie es geht ("Val").
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
raziel
      
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Di 27.04.04 19:59
(1) Macht das nix, falls doch mal einer auf die Idee kommt, die Suchfunktion zu benutzen
(2) Der Vollständigkeit halber: Es gibt noch die Möglichkeit "TryStrToInt":
Delphi-Quelltext 1:
| function TryStrToInt(const S: string; out Value: Integer): Boolean; |
liefert false, falls S kein gültiger Integer ist. Andernfalls gibt Value den konvertierten Wert als Integer zurück und result := true
raziel
_________________ JSXGraph
|
|