Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Evitar Eventos en un campo de texto

Estas en el tema de Evitar Eventos en un campo de texto en el foro de Visual Basic clásico en Foros del Web. Hola a todos: Alguien sabe como puedo evitar que ocurran eventos en un campo de texto, como el lostfocus, sin deshabilitar el control? Saludos......
  #1 (permalink)  
Antiguo 03/03/2010, 15:27
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Evitar Eventos en un campo de texto

Hola a todos:

Alguien sabe como puedo evitar que ocurran eventos en un campo de texto, como el lostfocus, sin deshabilitar el control?

Saludos...
  #2 (permalink)  
Antiguo 03/03/2010, 15:34
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Evitar Eventos en un campo de texto

Si no quieres hacer nada cuando se produzca el evento, ¿ no es suficiente con que pases de el ?

Si comentas un poco lo que pretendes hacer quizás sea mas fácil dar una solución.
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #3 (permalink)  
Antiguo 03/03/2010, 15:49
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Evitar Eventos en un campo de texto

Cierto...creo que deje la pregunta muy abierta. El detalle es el siguiente: Basicamente mi problema es con una variable global. Y expondre el caso lo mejor que pueda. Tengo un aplicativo el cual no puedo modificar directamente en codigo duro. Este aplicativo se puede modifcar Via Script. Ahora, tengo una pantalla con varios botones y varios campos de texto, me voy a avocar solo a 1 de cada uno.
Yo capturo datos en el campo de texto y cuando presiono el boton de aceptar, corre un script que hace varias validaciones y modifica una variable global. Pongamosla como BolTodoOK.
Si las validaciones pasan sin problema BolTodoOK = True, pero si hay problema en las validaciones BolTodoOK = False. y aqui coloco el foco en un campo de texto. (el del error)
Ahora cuando llegan a presionar varias veces la tecla "enter" sobre el teclado, corre el evento lostfocus sobre el campo de texto y este me convierte la variable BolTodoOK = True.
Esta parte debe ser muy rapida, por lo que un script me sobreescribe la variable y cuando verifico el valor de la variable para saber si la operacion estuvo bien, ya encuentro un BolTodoOK = True y se brinca las validaciones.
Lo que quiero saber es como puedo evitar el evento lostfocus del control sin deshabilitarlo.

espero haya sido un poco mas clara
Saludos...
  #4 (permalink)  
Antiguo 03/03/2010, 16:36
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Evitar Eventos en un campo de texto

No se si entiendo muy bien lo que quieres explicar, pero para validar los datos creo que es mejor el evento Validate

Private Sub Text1_Validate(Cancel As Boolean)
' Si los datos nos son correctos pones Cancel = True y el campo no pierde el foco
End Sub

Saludos
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...
  #5 (permalink)  
Antiguo 04/03/2010, 14:59
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Evitar Eventos en un campo de texto

Hola Erbuson:

Mi problema no es tanto ese, sino que no cuento con el codigo fuente de la aplicacion, por lo que programar cualquier evento adicional o bien quitar algun evento que ya se este ejecutando no puedo hacerlo.
Mi unica manera de modificar el programa es via Script, por lo que los eventos previamente programados no puedo modificarlos.
Entonces pongamoslo de la siguiente manera:

Public CancelaOperacion as boolean 'La variable global
Sub Form_Load()
'Aqui todas las declaraciones necesarias de inicio del programa
End Sub

Sub Text_losfocus()

CorreProceso "ValidaTeclado" 'CorreProceso es un llamado al objeto Script y "validateclado" es un script
If CancelaOperacion = True Then
CancelaOperacion = False
Exit Sub
End If
End Sub

Sub cmdAceptar_Click()
CorreProceso "ValidaDatos" 'CorreProceso es un llamado al objeto Script y "ValidaDatos" es un script
If CancelaOperacion = True Then
CancelaOperacion = False
Exit Sub
End If

TerminaOperacion
End Sub

Es un ejemplo general, no habria problema si el valor de la variable CancelaOperacion se quedará con el valor que envia el proceso ValidaDatos, pero en ocasiones (NO sucede siempre), al presionar muy rapido las teclas, el aplicativo corre el proceso lostfocus, si se dan cuenta al final de correr el proceso verifica la variable, y si esta en verdadero la pone en falso. Entonces cuando llega a la parte de validacion en el evento click del boton la variable ya trae un valor equivocado. Y termina la operacion. Repito, no cuento con codigo fuente. Solo puedo intentar detener la ejecucion de procesos via script

Saludos...
  #6 (permalink)  
Antiguo 04/03/2010, 15:51
Avatar de erbuson  
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Evitar Eventos en un campo de texto

Espero que alguien te pueda ayudar, porque a mi esto de controlar via Script y lo demás que comentas me viene muy grande no tengo ni la mas remota idea de como puede hacerse.
Lo siento
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...

Etiquetas: eventos, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.