Programación General > Visual Basic 6.0 e inferiores
Re: Validacion de los "text"
Cero Kull:
Javier Feliz Navidad!!!
Hola sabes tuve problema con internet., pero estoy de
vuelta con mis preguntitas..
Sabes intente hacer lo que me dijiste en ultimo mensaje
1 declare una variable "Dim cancelar as booleana"
2 Esto lo declare en el form load del del cual no quiero
que aparezca el mensaje y mantener el text en blanco
3 En el boton "Volver" en el evento "MouseDown" le puse cancelar = true
y lo mismo con el gotfocus y antes de llamar la funcion coloque este codigo
If Not Cancelar Then ProcesarLostFocusText Text1
osea lo hice como me dijiste ademas busque otras formas de eliminar el mesaje
y no pude ademas que soy novato y otra cosa no me queda mucho tiempo para meterme mas
asi que me gustaria que me dijeras como elimino o como que otra cosa debo probar!!!
Saludos Javier!!!B)
javierbalk:
Hola Cero Kull:
No estoy en mi PC en este momento porque estoy de viaje, pero hice la prueba en esta PC donde estoy en el Visual 5 que tiene instalado, y si pongo Cancelar = True tanto en el evento GotFocus como en el MouseDown del command y poniendo If Not Cancelar en el evento LostFocus del TextBox, con la variable Cancelar definida como Private a nivel del formulario no me procesa lo del evento LostFocus de TextBox.
Además recuero también que lo usé así en un programa mío en el pasado y anda bien.
Probalo bien de nuevo.
Saludos,
Javier
Cero Kull:
Javier gracias por tu ayuda pero me rindo ya no sè estoy
'haciendo mal ....
'me imagino que tienes un form com dos text's
'de esa manera lo estoy probando, ademas teniendo
'el modulo de procesar el losFocus
'asi es que me rindo ya no se que hacer
'de este modo lo estoy provando
'ERROR ENCONTRADO ES EL MISMO DICE QUE LE INGRESE ALGO
'AL TEXT'S,PERO AVECES MOSTRANDO * DOS EL MENSAJE
'ESTOY RENDIDO NO SE QUE HACER
'ES LA ULTIMA VEZ QUE TE MOLESTO....
'***** Este es el codigo del Form**********
Private Sub Command1_GotFocus()
cancelar = True
End Sub
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
cancelar = True
End Sub
'--> En este nivel estoy declarando la variable (que seria a nivel de Formulario)
Private Sub Form_Load()
Dim cancelar As Boolean ' --> Que pasa si la declaro como_
' private me arroja error asì que la dejo como "Dim"
End Sub
Private Sub Text1_KeyPress(Keyascii As Integer)
ProcesarKeyPressTextSoloTexto Keyascii, Text1
End Sub
Private Sub Text1_LostFocus()
If Not cancelar Then ProcesarLostFocusText Text1
ProcesarLostFocusText Text1
End Sub
Private Sub Text2_KeyPress(Keyascii As Integer)
ProcesarKeyPressTextSoloTexto Keyascii, Text2
End Sub
Private Sub Text2_LostFocus()
ProcesarLostFocusText Text2
End Sub
Private Sub Command1_Click()
MsgBox "hola se termino el programa", vbCritical
End Sub
'*********Fin del Codigo Del FORM*********
'****** Este es el Codigo del modulo ********
Public Sub ProcesarKeyPressTextSoloTexto(Keyascii As Integer, txt As TextBox)
If Asc(UCase(Chr(Keyascii))) < Asc("A") Or Asc(UCase(Chr(Keyascii))) > Asc("Z") Then
If Keyascii <> 8 And Keyascii <> 13 And Keyascii <> 209 And Keyascii <> 241 And Keyascii <> 34 And Keyascii <> 225 And Keyascii <> 233 And Keyascii <> 237 And Keyascii <> 32 And Keyascii <> 243 And Keyascii <> 250 Then
Keyascii = 0
Beep
End If
If Keyascii = 13 Then
SendKeys "{TAB}"
End If
Else
Keyascii = Asc(UCase(Chr(Keyascii)))
End If
End Sub
Public Sub ProcesarLostFocusText(txt As TextBox)
Static Procesando As Boolean
If Procesando Then Exit Sub
Procesando = True
txt.Text = Trim(UCase(txt.Text))
If txt.Text = "" Then
MsgBox " Ingrese datos pedidos ", vbExclamation
txt.SetFocus
DoEvents
End If
Procesando = False
End Sub
'******* Fin delCodigo Modulo *********
' Saludos Atte Cero Kull®
B)
javierbalk:
Hola Cero Kull:
Lo que pasa que estás haciendo algo mal: la variable Cancelar la tenes que declarar a nivel del formulario y no a nivel de un procedimiento.
Si vos declaras una variable en el evento Load la ve solo en ese evento, es decir hasta que llega al End Sub.
Para declararla a nivel del formulario la tenés que poner arriba de todo (en la sección de declaraciones), ahí te la va a aceptar con Dim y con Private.
Te paso el código que tenés que copiar en el form, solo modifiqué eso y le agregué el Unload Me para salir en el botón de comando:
'*********************************
Private cancelar As Boolean
Private Sub Command1_GotFocus()
cancelar = True
End Sub
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
cancelar = True
End Sub
Private Sub Text1_KeyPress(Keyascii As Integer)
ProcesarKeyPressTextSoloTexto Keyascii, Text1
End Sub
Private Sub Text1_LostFocus()
If Not cancelar Then ProcesarLostFocusText Text1
End Sub
Private Sub Text2_KeyPress(Keyascii As Integer)
ProcesarKeyPressTextSoloTexto Keyascii, Text2
End Sub
Private Sub Text2_LostFocus()
If Not cancelar Then ProcesarLostFocusText Text2
End Sub
Private Sub Command1_Click()
MsgBox "hola se termino el programa", vbCritical
Unload Me
End Sub
'*********************************
Saludos,
Javier
Cero Kull:
Javier!!!
Javier Resolvi el problema ultimo pero me quedo un pequeño
problemita
Esto lo del Losfotus procesa solo cajas de text, pero sabes intente cambiar
a que busque o solo el cursor se posecione en una MaskEdBox., osea lo que estoy
intentando decir que despues del ultimo text procesado, se salte el cursor
a una maskEdbox de entrada como lo hago????sabes lo intente
pero no me resulto como llamo a otro procedimiento despues de haber validado el ultimo Text
Te cuentome costo sacar el mesaje pero probando probado logre con tu ayuda que por lo menos me
funcione solo tengo que hacer como cambiar a otro Control!!
Saludos Atte.
Cero Kull®
Pd. Si leiste donde te pedia el mail., ya resolvi ese problema solo me queda el ultimo
que pregunte osea el de mas arriba!!!
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa