Validar ingreso de un real
Publicado por edu (4 intervenciones) el 28/01/2009 23:25:35
Buenas tardes, mi consulta es la siguiente:
Tengo 2 cajas de texto que deben recibir 1 numero real cada una, de tal forma que sólo permitan el ingreso de los dígitos del 0 al 9 además del -(menos) y el punto, pero estos últimos solo deben permitirse ingresar una sola vez en cada caja además el -(menos) únicamente podría ingresarse al inicio de la entrada. He tomado como parte de mi código la función soloNumeros() que postearon hace unos días pero quisiera añadirle las lineas necesarias para que me permita llevar a cabo este caso. Lo he conseguido codificando el evento KeyPress de cada TextBox pero me doy cuenta que hay codigo duplicado que pienso podría ir dentro de la función.
Private Sub txtBase_KeyPress(keyAscii As Integer)
If (keyAscii = 13) Then
txtExponente.SetFocus
keyAscii = 0 'evita que suene el beep
Else
If (keyAscii <> 45) Then
If (keyAscii <> 46) Then
keyAscii = soloNumeros(keyAscii)
Else
If (InStr(txtBase.Text, ".") <> 0) Then
keyAscii = 0
End If
End If
Else
If (txtBase.Text <> "") Then
keyAscii = 0
End If
End If
End If
End Sub
Private Sub txtExponente_KeyPress(keyAscii As Integer)
If (keyAscii = 13) Then
If (cmdCalcular.Enabled) Then
cmdCalcular.SetFocus
keyAscii = 0 'evita que suene el beep
End If
Else
If (keyAscii <> 45) Then
If (keyAscii <> 46) Then
keyAscii = soloNumeros(keyAscii)
Else
If (InStr(txtExponente.Text, ".") <> 0) Then
keyAscii = 0
End If
End If
Else
If (txtExponente.Text <> "") Then
keyAscii = 0
End If
End If
End If
End Sub
en un módulo la función:
Function soloNumeros(ByVal tecla As Integer) As Integer
Dim iValor As Integer
iValor = tecla
If (InStr("0123456789" & Chr(8), Chr(iValor)) = 0) Then
iValor = 0
End If
soloNumeros2 = iValor
End Function
Tengo 2 cajas de texto que deben recibir 1 numero real cada una, de tal forma que sólo permitan el ingreso de los dígitos del 0 al 9 además del -(menos) y el punto, pero estos últimos solo deben permitirse ingresar una sola vez en cada caja además el -(menos) únicamente podría ingresarse al inicio de la entrada. He tomado como parte de mi código la función soloNumeros() que postearon hace unos días pero quisiera añadirle las lineas necesarias para que me permita llevar a cabo este caso. Lo he conseguido codificando el evento KeyPress de cada TextBox pero me doy cuenta que hay codigo duplicado que pienso podría ir dentro de la función.
Private Sub txtBase_KeyPress(keyAscii As Integer)
If (keyAscii = 13) Then
txtExponente.SetFocus
keyAscii = 0 'evita que suene el beep
Else
If (keyAscii <> 45) Then
If (keyAscii <> 46) Then
keyAscii = soloNumeros(keyAscii)
Else
If (InStr(txtBase.Text, ".") <> 0) Then
keyAscii = 0
End If
End If
Else
If (txtBase.Text <> "") Then
keyAscii = 0
End If
End If
End If
End Sub
Private Sub txtExponente_KeyPress(keyAscii As Integer)
If (keyAscii = 13) Then
If (cmdCalcular.Enabled) Then
cmdCalcular.SetFocus
keyAscii = 0 'evita que suene el beep
End If
Else
If (keyAscii <> 45) Then
If (keyAscii <> 46) Then
keyAscii = soloNumeros(keyAscii)
Else
If (InStr(txtExponente.Text, ".") <> 0) Then
keyAscii = 0
End If
End If
Else
If (txtExponente.Text <> "") Then
keyAscii = 0
End If
End If
End If
End Sub
en un módulo la función:
Function soloNumeros(ByVal tecla As Integer) As Integer
Dim iValor As Integer
iValor = tecla
If (InStr("0123456789" & Chr(8), Chr(iValor)) = 0) Then
iValor = 0
End If
soloNumeros2 = iValor
End Function
Valora esta pregunta


0