Hilfe bei Programmierung Taschenrechner

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

  1. dass man keine buchstaben und keine Sonderzeichen (§;$% usw.)eingeben kann
  2. 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

Servus

Hallo,

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

  1. dass man keine buchstaben und keine Sonderzeichen (§;$%
    usw.)eingeben kann
  2. 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 :smile:
Wie du siehst kannst du das ereigniss Keypress hervorragend dafür nutzen :smile:

MFG Alex

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

damit müsste es gehen.
mfg sebastian horwege

Leider funktionieren beide Codes nicht :frowning:

Hallo Alex,

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

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.

MfG Peter(TOO)

Leider funktionieren beide Codes nicht :frowning:

wieso geht mein code denn nicht, welchen fehler geibt es. vielleicht kann ich den beheben…
sebastian horwege

Hallo Peter,

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]

Leider funktionieren beide Codes nicht :frowning:

Hallo Xaver,

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 :smile:
Habe es gerade bei mir ausprobiert unter VB5 Enterprise Edition und da funzt es :smile:

Leider funktionieren beide Codes nicht :frowning:

wieso geht mein code denn nicht, welchen fehler geibt es.
vielleicht kann ich den beheben…
sebastian horwege

sollte eigentlich funktionieren :smile: Bei mir geht es zumindest