Autor Beitrag
NetZwerg
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 448

Slackware 10.1
Kylix 3, D5 Standard
BeitragVerfasst: 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:

ausblenden 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 :twisted:

_________________
"Manche Leute drücken nur deshalb ein Auge zu, damit sie besser zielen können."
Billy Wilder, amer. Filmregisseur
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: So 04.04.04 13:01 
ausblenden 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 448

Slackware 10.1
Kylix 3, D5 Standard
BeitragVerfasst: So 04.04.04 16:57 
InToStrDef() wäre theoretisch gut, nur soll kein Standartwert zurückgegeben werden, deshalb schlecht! :roll:

_________________
"Manche Leute drücken nur deshalb ein Auge zu, damit sie besser zielen können."
Billy Wilder, amer. Filmregisseur
FaTaLGuiLLoTiNe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 5

Windows 7, Windows 8.1
Delphi XE
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: 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":
ausblenden Delphi-Quelltext
1:
function TryStrToInt(const S: stringout 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