129 lines
6.1 KiB
VB.net
129 lines
6.1 KiB
VB.net
|
Public Class clsString
|
|||
|
Public Sub fsValidKeyPress(ByVal KeyAscii As Integer, ByVal sTipo As String, ByVal pbActiveCtrl As Object)
|
|||
|
'Validar caracteres de captura.
|
|||
|
'Sintaxis : fsValidKeyPress(KeyAscii, sTipo, bActiveCtrl)
|
|||
|
'KeyAscii - Valor Ascii del evento KeyPress del control.
|
|||
|
'sTipo - Tipo de campo que se valida.
|
|||
|
'bActiveCtrl - Determina la validaci<63>n sobre el control activo en pantalla,
|
|||
|
' es True por omisi<73>n.
|
|||
|
'Nota: El tipo de dato que se debe dar, se describe a continuaci<63>n:
|
|||
|
' A = Alfabetico (Solo Alfabetos).
|
|||
|
' AN = Alfanum<75>rico (N<>meros y Alfabetos).
|
|||
|
' N = N<>merico con Punto flotante y signo negativo.
|
|||
|
' I = N<>merico enteros.
|
|||
|
' D = Fecha.
|
|||
|
' F = Fecha.
|
|||
|
' C = Caracter (Todos los caracteres permisibles ecepto el salto de linea).
|
|||
|
' S = String (Todos los caracteres permisibles incluyendo el salto de linea).
|
|||
|
' M = Memo (Todos los caracteres permisibles incluyendo el salto de linea).
|
|||
|
' H = Horas.
|
|||
|
' T = Telefonico (N<>merico con guiones, espacios y parentesis)
|
|||
|
' V = Varchar (Todos los caracteres permisibles incluyendo el salto de linea).
|
|||
|
' R = Campo de Solo Lectura (Read [Only]).
|
|||
|
' E = E-MAIL (Todos los caracteres permisibles ecepto el salto de linea).
|
|||
|
'*******************************************
|
|||
|
' Fecha de Creaci<63>n: 01-Jun-1997
|
|||
|
' Autor .NET: Juan Garcia Nava.
|
|||
|
'*******************************************
|
|||
|
If KeyAscii < 32 And KeyAscii <> 8 And KeyAscii <> 13 Then Exit Sub
|
|||
|
'Caracteres No Validos.
|
|||
|
Select Case KeyAscii
|
|||
|
Case 34 '=[Doble comilla]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 39 '=[Apostrofe]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 94 '=[Barra]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 96 '=[Apostrofe invertido]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 123 To 190 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 192 '=<3D>
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 194 To 200 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 202 To 204 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 206 To 208 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 210 '=<3D>
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 212 To 217 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 219 To 224 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 226 To 232 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 234 To 236 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 238 To 240 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 242 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case 244 To 249 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case Is > 250 '=[Especiales]
|
|||
|
KeyAscii = 0 '
|
|||
|
Case Else
|
|||
|
'Caracteres Validos seg<65>n el tipo.
|
|||
|
sTipo = UCase(sTipo)
|
|||
|
Select Case sTipo
|
|||
|
Case "A" 'Alfabeto.
|
|||
|
' If KeyAscii = 13 Then KeyAscii = 0 '
|
|||
|
If KeyAscii = 13 Then SendKeys.Send("{tab}")
|
|||
|
If (KeyAscii < 65 Or KeyAscii > 90) And KeyAscii <> 63 Then
|
|||
|
If (KeyAscii <> 8 And KeyAscii < 97) Or KeyAscii > 122 Then KeyAscii = 0 '
|
|||
|
End If
|
|||
|
Case "AN" 'AlfaNum<75>rico.
|
|||
|
' If KeyAscii = 13 Then KeyAscii = 0 '
|
|||
|
If KeyAscii = 13 Then SendKeys.Send("{tab}")
|
|||
|
If ((KeyAscii <> 8 And KeyAscii < 48) Or (KeyAscii > 57 And KeyAscii < 65) Or (KeyAscii > 90 And KeyAscii < 97) Or KeyAscii > 122) And KeyAscii <> 63 Then KeyAscii = 0 '
|
|||
|
Case "C" 'Car<61>ctere.
|
|||
|
If KeyAscii = 13 Then SendKeys.Send("{tab}") '
|
|||
|
Case "R" 'Solo Lectura.
|
|||
|
KeyAscii = 0 '
|
|||
|
Case "I" 'Entero
|
|||
|
' If KeyAscii = 13 Then Exit Sub
|
|||
|
If KeyAscii = 13 Then SendKeys.Send("{tab}")
|
|||
|
If KeyAscii = 8 Then Exit Sub
|
|||
|
' 0123456789
|
|||
|
If Not (KeyAscii < 58 And KeyAscii > 47) Then KeyAscii = 0
|
|||
|
Case "N" 'N<>merico con punto flotante.
|
|||
|
' If KeyAscii = 13 Then Exit Sub
|
|||
|
If KeyAscii = 13 Then SendKeys.Send("{tab}")
|
|||
|
|
|||
|
If KeyAscii = 8 Then Exit Sub
|
|||
|
' .0123456789-
|
|||
|
If Not (KeyAscii < 58 And KeyAscii > 44 And KeyAscii <> 47) Then KeyAscii = 0
|
|||
|
If InStr(pbActiveCtrl, ".") And KeyAscii = 46 Then KeyAscii = 0
|
|||
|
|
|||
|
If KeyAscii = 45 Then
|
|||
|
If InStr(pbActiveCtrl, "-") = 0 Then
|
|||
|
If Len(pbActiveCtrl) > 0 Then
|
|||
|
pbActiveCtrl = "-" & pbActiveCtrl
|
|||
|
KeyAscii = 0
|
|||
|
End If
|
|||
|
Else
|
|||
|
KeyAscii = 0
|
|||
|
End If
|
|||
|
End If
|
|||
|
|
|||
|
If InStr(pbActiveCtrl, ".") And KeyAscii = 46 Then KeyAscii = 0
|
|||
|
|
|||
|
If KeyAscii = 45 Then
|
|||
|
If InStr(pbActiveCtrl, "-") = 0 Then
|
|||
|
If Len(pbActiveCtrl) > 0 Then
|
|||
|
pbActiveCtrl = "-" & pbActiveCtrl
|
|||
|
KeyAscii = 0
|
|||
|
End If
|
|||
|
Else
|
|||
|
KeyAscii = 0
|
|||
|
End If
|
|||
|
End If
|
|||
|
Case Else
|
|||
|
' If KeyAscii = 13 Then SendKeys "{Tab}"
|
|||
|
End Select
|
|||
|
End Select
|
|||
|
End Sub
|
|||
|
End Class
|