Validación de Caracteres y Teclas.

3,594 views
Skip to first unread message

stallman stallman

unread,
Jun 29, 2011, 10:38:03 PM6/29/11
to publice...@googlegroups.com
Buenas Estimados Señores.

* Quisiera porfavor me puedan ayudar a agregar funciones a la siguiente validación:

1- Ésta validación solamente permite que se digiten los caracteres que se definen para la variable lcTecla (En el Evento KeyPress de un TextBox) :
 
Local lcTecla
         
          lcTecla = Chr(nKeyCode)   
 
            IF !lcTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ abcdefghijklmnñopqrstuvwxyz " THEN
                    NODEFAULT
            ENDIF
            RETURN
       ENDIF


2- Cómo hago para que la validación me acepte también teclas Como:
ENTER
BACKSPACE
SUPR
TAB

Les agradezco mucho me puedan orientar.

Walter R. Ojeda Valiente

unread,
Jun 29, 2011, 10:59:32 PM6/29/11
to publice...@googlegroups.com
Cada caracter tiene un código numérico, tanto los que ves en tu teclado como aquellos que no ves.

Por ejemplo:
TAB = 9
ENTER = 13
ESC = 27
0 = 48
1 = 49
A = 65
B = 66

etc.

Utilitza nKeyCode sin la función CHR() para realizar las validaciones de los caracteres no imprimibles.

Por ejemplo:

  if nKeyCode = 9     && Si presionó la tecla TAB

  if nKeyCode = 13     && Si presionó la tecla ENTER

  if nKeyCode = 27     && Si presionó la tecla ESC

Saludos.

Walter.




Date: Wed, 29 Jun 2011 20:38:03 -0600
Subject: [vfp] Validación de Caracteres y Teclas.
From: stall...@gmail.com
To: publice...@googlegroups.com

Intel Man

unread,
Jun 29, 2011, 11:08:31 PM6/29/11
to publice...@googlegroups.com
Hola puedes hacer algo como esto:


Local lcTecla
         
          lcTecla = Chr(nKeyCode)   
 
            IF !lcTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ abcdefghijklmnñopqrstuvwxyz " or inlist(lastkey(),13,7,....)
                    NODEFAULT
            ENDIF
            RETURN
       ENDIF


Donde 13=Enter  7=Backspace etc

Saludos



Date: Wed, 29 Jun 2011 20:38:03 -0600
Subject: [vfp] Validación de Caracteres y Teclas.
From: stall...@gmail.com
To: publice...@googlegroups.com

stallman stallman

unread,
Jun 29, 2011, 11:40:03 PM6/29/11
to publice...@googlegroups.com

Saludos Walter. y mil gracias.

Entiendo lo de los caracteres ASCII, lo que quiero es que se permita la ejecución de las taclas mencionadas, es decir que si se presiona por ejemplo SUPR se ejecute la función nativa de la tecla (en este caso borrar), igual con la tecla BACKSPACE, FLECHA_INQUIERDA, FLECHA_DERECHA; si lo hago mediante los IF que me indicas: por ejemplo :  if nKeyCode = 127     && Si presionó la tecla BACKSPACE

Cómo ejecuto el código nativo en éste IF de ésa tecla (en este caso retroceder un espacio y borrar)?



Te agradezco la colaboración Don Walter.


stallman stallman

unread,
Jun 29, 2011, 11:42:57 PM6/29/11
to publice...@googlegroups.com
Muchas Gracias Intel Man.

Realicé lo siguiente como me indicastes, sin embargo no produjo ningún resultado....



 Local lcTecla   
       
        lcTecla = Chr(nKeyCode) 
          IF !lcTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ abcdefghijklmnñopqrstuvwxyz " OR INLIST(LASTKEY(),13,127,7,19,4)THEN
                NODEFAULT
          ENDIF
          RETURN

Intel Man

unread,
Jun 30, 2011, 12:01:10 AM6/30/11
to publice...@googlegroups.com
Hola, no lei bien tu codigo, intenta esto:


 Local lcTecla   
       
        lcTecla = Chr(nKeyCode) 
          if INLIST(LASTKEY(),13,127,7,19,4)
             return
          endif

          IF !lcTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ abcdefghijklmnñopqrstuvwxyz "
                NODEFAULT
          ENDIF
          RETURN

Saludos



Date: Wed, 29 Jun 2011 21:42:57 -0600
Subject: Re: [vfp] Validación de Caracteres y Teclas.
From: stall...@gmail.com
To: publice...@googlegroups.com

stallman stallman

unread,
Jul 1, 2011, 12:13:26 AM7/1/11
to publice...@googlegroups.com
Saludos Intel Man, probé el código y me trabaja a placer.

Mil Gracias.!!

James S

unread,
Jul 17, 2013, 10:45:29 AM7/17/13
to publice...@googlegroups.com
Es algo tan sencillo como:


Local v
v = chr(m.nkeycode)
if !INLIST(LASTKEY(),13,127,7,19,4) or !isalpha(m.v)
    nodefault 
endif 

Fidel Charny

unread,
Jul 17, 2013, 10:50:38 AM7/17/13
to publice...@googlegroups.com
Oye James, se te quedó en el tintero? (01/07/2011)

Ricardo Pina

unread,
Jul 17, 2013, 10:53:54 AM7/17/13
to Grupo VFP
jajaja, "stallman stallman" ya es "ya esta man"
 
 
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

Reply all
Reply to author
Forward
0 new messages