Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Evitar Letras En Textbox
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Evitar Letras En Textbox 
 
Buenas! realmente nose si es el metodo correcto, ni la forma de la q deberia hacerse, pero me funciona y de lujo

PUBLIC SUB Ttelefono_Change()
  CInt(Ttelefono.Text) 'Convierte el numero en entero
  CATCH
  Ttelefono.Text = Mid$(Ttelefono.Text, 1, -1) 'Si no es un numero borra el caracter
  STOP EVENT
END


De este sencillo metodo consigo que en mi textbox llamado Ttelefono no pueda escribir una letra, para en parte, asegurarme deq almenos se parezca a un numero de telefono spero q os sirva de ayuda
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evitar Letras En Textbox 
 
Hola
El evento change se ejecuta cuando tu control ya ha cambiado su contenido y ahora tienes que trabajar para quitarlo si no es adecuado.

Parece mas apropiado el evento keypress que se ejecuta cuando pulsas una tecla.

Pongamos que tu solo quieras números
sub textbox_keypress()
if isdigit(key.text) then ---> es numérico
...
endif


http://gambasdoc.org/help/cat/char?es

Si quieres anular la tecla puedes anular el evento (stop event) en cuyo caso no llega nada al control.

¡ojo! el keypress salta al pulsar una tecla (el keyrelease al soltarla). Ten cuidado con las pulsaciones que eliminas porque podrías impedir borrar un número mal puesto por ejemplo. Para evitar problemas de gui y ascii utiliza las constantes que corresponden a cada tecla en la clase key y así te funcionará bien.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evitar Letras En Textbox 
 
si, veo q tu metodo es mas optimizado, en cualquier caso, ambos funcionan :P, cambiaré al tuyo en la siguiente compilacion que haga, para optimizar el tema

Grax!
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evitar Letras En Textbox 
 
Conceptualmente debemos pensar que el evento keypress como su nombre indica está pensado para detectar pulsaciones de teclas y actuar conforme a eso. Por ello cuando quieres permitir algunas teclas y otras no lo mas lógico es recurrir a él.

El evento change está mas pensado para actuar cuando el contenido cambia. Por ejemplo yo tengo hecho un gridview que muestra el contenido de una tabla. Según vas escribiendo un nombre en un textbox en el gridview se van filtrando solo los registros que coinciden con lo escrito. Es decir, cuando el textbox cambia, se realiza una nueva búsqueda y se muestra el resultado

 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evitar Letras En Textbox 
 
hehehe ahora q lo comentas, podrias poner ese ejemplo? seria la caña, tengo echo un pequeño buscador pero muestra los resultados totales, seria genial q fuese filtrando menuda idea! ... desde luego, cuanto mas tele veo, menos imaginacion desarrollo.......
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evitar Letras En Textbox 
 
Pues es muy sencillo.

Imagina un gridview o cualquier otro control que muestra el contenido de una tabla.
Ahora imagina un textbox en el que quieres escribir y que según vayas escribiendo se vaya filtrando.

Por abreviar pensemos en una conexión activa.

sub textbox_change
Dim Rs as result

if textbox.text then ---> que haga esto si en el textbox hay algo
   Rs=Cn.exec("select * from tabla where campo like '" & textbox.text & "%' order by lo_que_sea")
else
   Rs=Cn.exec("select * from tabla order by lo_que_sea")
endif

LlenarGrid(Rs) ---> procedimiento que llena el gridview
end sub


Ese evento tal como está puesto filtra todo aquello que EMPIECE POR lo que has escrito en el textbos. También podemos hacer que en vez de EMPEZAR POR filtre los registros que CONTENGAN lo que has escrito.
sub textbox_change
Dim Rs as result

if textbox then ---> que haga esto si en el textbox hay algo
   Rs=Cn.exec("select * from tabla where campo like '%" & textbox.text & "%' order by lo_que_sea")
else
   Rs=Cn.exec("select * from tabla order by lo_que_sea")
endif

LlenarGrid(Rs) ---> procedimiento que llena el gridview
end sub
En este caso según tu vas escribiendo algo en el textbos se van filtrando en el gridview los registros cuyo campo contiene lo que has escrito.

En mysql el % es un comodín para varios caracteres. No se cual es en sqlite quizá sea el mismo o no, pero en cualquier caso se entiende lo que digo.

Otra posibilidad que funciona igual es la propiedad filter del datasource por ejemplo.

Otro caso que te propongo
El caso anterior no es una buena solución cuando hay muchos registros porque tarda en generar el result (es cuestión de probar), pero lo que si es eficiente es en vez de generar result nuevos buscar en una tabla.

Osea que tu tienes un grid con un montón de datos y tienes un textbox y cuando escribes algo te busca y se posiciona en el primer registro que cumple esa condición. Yo suelo poner un botón adicional que es para buscar siguiente y lo que hace es buscar el siguiente registro que cumpla esa misma condición.

 
 



 
última edición por soplo el Viernes, 25 Septiembre 2009, 19:37; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Evitar Letras En Textbox 
 
ahahhaha llevaba desde q te contesté probando cosillas, pero me petaba lo q hacia   gracias x la solucion!

sobre el sql si q lo entiendo vengo de php+mysql x eso tengo mas de un problema al seleccionar cosas en tiempo real, no me puse con Ajax :P.

sobre lo q me propones.... voy aver si termino de aclararme en "mostrar datos" q para guardar en mysql no tengo problemas, pero para mostrar.... mas de uno :s
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Evitar Repetir Letras Dani26 Aplicaciones/Fragmentos de Código 1 Sabado, 19 Junio 2010, 12:26 Ver último mensaje
Emmet
No hay nuevos mensajes Impedir Que Ciertas Letras Esten En Un Tex... zero14 General 3 Miercoles, 13 Junio 2012, 03:07 Ver último mensaje
skaterleopoldo12
No hay nuevos mensajes Reto 7 (v3ctor) Bloquear Repeticion De Let... v3ctor Retos de programación 3 Lunes, 28 Septiembre 2015, 13:42 Ver último mensaje
Shell
No hay nuevos mensajes Evitar Autoguardado inforpalma Instalación 5 Domingo, 13 Enero 2019, 21:06 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede publicar eventos en el calendario