Servus
ich bräuchte Hilfe beim programmieren von einem Taschenrechner
Und zwar hab ich folgendes Problem:
Der Rechner ist mit 2 Textboxen einem Button und einem Label ausgestattet
So jetzt will ich das in den beiden Textboxen
dass man keine buchstaben und keine Sonderzeichen (§;$% usw.)eingeben kann
dass man nur ein Komma einfügen kann
In die Textboxen wird über die Tastatur die Zahlen eingegeben
ich bräuchte Hilfe beim programmieren von einem Taschenrechner
Und zwar hab ich folgendes Problem:
Der Rechner ist mit 2 Textboxen einem Button und einem Label
ausgestattet
So jetzt will ich das in den beiden Textboxen
dass man keine buchstaben und keine Sonderzeichen (§;$%
usw.)eingeben kann
dass man nur ein Komma einfügen kann
In die Textboxen wird über die Tastatur die Zahlen eingegeben
Wie kann ich diese Fehler beheben?
MFG Xaver
Hallo Xaver,
dim zahlen as boolean
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Zahlen = True Then
Select Case KeyAscii
Case Asc(„0“) To Asc(„9“), Asc(","),8, 13 'inkl. BackSpace & Return
Case Else
KeyAscii = 0
End Select
End if
End Sub
Vorrausgesetzt ist hier das das textfeld Text1 heisst
Wie du siehst kannst du das ereigniss Keypress hervorragend dafür nutzen
hi
ich hab hier nen quellcode,den du einfach in den codeabschnitt des formulars schreiben musst:
Dim testen_ob_Zahl
Private Sub Command1_Click()
testen_ob_Zahl = IsNumeric(Text1.Text)
If testen_ob_Zahl = True Then MsgBox „alles klar“
If testen_ob_Zahl = False Then MsgBox „du musst ne zahl eingeben“
End Sub
'du brauchst einen button: Command1
'und eine textbox: Text1
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Zahlen = True Then
Select Case KeyAscii
Case Asc(„0“) To Asc(„9“), Asc(","),8, 13 'inkl.
BackSpace & Return
Case Else
KeyAscii = 0
End Select
End if
End Sub
Dein Code hat einen grossen Fehler:
Bei manchen Ländereinstellungen (z.B. CH) wird als Dezimaltrennzeichen ein Punkt verwendet. VB verwendet nun beim Umwandeln von Text in Zahlen die Ländereinstellungen. Bei deiner Routine kann man dann zwar ein Komma über die normale Tastatur eingeben, VB erzeugt dann aber bei der Konvertierung ein RunTimefehler.
diee Routine war nur für die deutsche Ländereinstellung gedacht :s
Alternativ koennte er ja die eingaben mit clng(text1.text) im change ereignis überprüfen und zur not sendkeys „[BS}“ senden ?
VLG Alex
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
welche ländereinstellung hast du denn?
Alternativ kannst du im Change Ereigniss der textbox die eingaben mit clng(text1.ext) umwandeln. Tritt dabei ein Fehler auf , handelt es sich um eine ungültige eingabe und du kannst sendkeys „{BS}“ senden
Welche Fehlermeldung hast du denn bekommen?
MFG Alex
PS: ein stueck Code aus deinem Projekt würde sehr weiterhelfen
Habe es gerade bei mir ausprobiert unter VB5 Enterprise Edition und da funzt es