Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - String in Interger umwandel und überprüfen
AndreM - Do 12.02.04 20:12
Titel: String in Interger umwandel und überprüfen
Moin,
ich weiß das ist jetzt ne wahrscheinlich sehr dumme Frage, aber irgendwie stehe ich heute Abend nen wenig auf dem Schlauch.
Also ich habe ein Edit-Feld, in welches ich eine Zahl eingeben. Diese Zahl muß ich dann in einen Integer umwandel.
Das ganze geht ja ohne weiteres mit strtotin(str). Wenn jetzt der Anwender jedoch anstatt einer Zahl einen Buchstaben oder ein Zeichen eingegeben hat stürzt das Programm ja logischerweise ab.
Also dacht ich mit, versuch ich das ganze mal über try und except abzufangen, aber irgendwie ist das zu hoch für mich.
Also ich hab es mal mit folgendem Code probieret.
Delphi-Quelltext
1: 2: 3: 4: 5:
| try zahl:= strtoint(edit1.text); except showmessage('Ist kein Integer'); end; |
Aber irgendwie ist der Code nicht wirklich richtig! :D
Helft mir mal bitte auf die Sprüngen, und danach trau ich mich wahrscheinlich nie wieder hier hin! :D
Christian S. - Do 12.02.04 20:13
Hallo!
Try-Except würde ich hier nicht versuchen. Schau' Dir doch mal die Prozedur "Val" an.
MfG
Peter
AndreM - Do 12.02.04 20:29
OK, besten dank! Funzt ganz wunderbar.
Aber zum Thema try hab ich trotzdem noch eine Frage. Wie müßte der Code denn aussehen, wenn ich z.B. überprüfen möchte ob ein SQL-Code gültig ist.
Als Beispiel würde ich mal folgenden Code nehmen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| try Form_Haupt.IBQuery_Einlesen.SQL.Clear; Form_Haupt.IBQuery_Einlesen.SQL.Add('select * from TABELLE1 where ID = 1'); Form_Haupt.IBQuery_Einlesen.Open; except Showmessage('Es ist ein Fehler aufgetreten'); end; |
Das hatte ich auch mal versucht, aber auch wenn ein Fehler beim Form_Haupt.IBQuery_Einlesen.Open; auftritt wird der zweig trotzdem ausgeführt und die Fehlermeldung wird ignoriert!
Egbert - Do 12.02.04 22:56
Titel: String in Interger umwandel und überprüfen
ruf diese Function mit dem OnkeyPress-Ereignis auf und dein Problem ist gelöst.
Delphi-Quelltext
1: 2: 3: 4: 5:
| Function NurZahlen(Key:Char):Char; Begin if Not (Key in ['0'..'9',#8,#13]) then Key:=#0; Result:=Key; end; |
{------------------------------------------------------------------}
viel Erfolg egbert..
Moderiert von
Peter Lustig: Delphi-Tags hinzugefügt
Christian S. - Do 12.02.04 23:16
Hallo!
Überprüfe mal, ob das nur in der IDE so ist oder auch, wenn Du die EXE-Datei außerhalb der IDE ausführst. Normalerweise zeigt die IDE Exceptions auch an, wenn diese in einem normalen Programmablauf gefangen worden wären.
MfG
Peter
Egbert - Fr 13.02.04 10:57
Titel: zu StringGrid usw...
hallo,
diese function habe ich mal vor jahren geschrieben und sie in einer globalen unit abgelegt. immer wieder, wenn ich in einer edit-komponente nur zahlen zulasse, verwende sie. probleme hat es damit noch nie gegeben.
Gruß Egbert
Egbert - Fr 13.02.04 11:02
in titel habe ich versehentlich stringgrid geschrieben, meine natürlich string in integer usw.. egb
AndreM - Fr 13.02.04 11:34
| Peter Lustig hat folgendes geschrieben: |
Hallo!
Überprüfe mal, ob das nur in der IDE so ist oder auch, wenn Du die EXE-Datei außerhalb der IDE ausführst. Normalerweise zeigt die IDE Exceptions auch an, wenn diese in einem normalen Programmablauf gefangen worden wären.
MfG
Peter |
Moin Peter,
genau das war das Problem. Und ich brach mir hier einen ab, und dabei liegt es nicht am Code, sondern an der IDE! :D
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!