Entrada de Datos en Text Box

4,240 views
Skip to first unread message

stallman stallman

unread,
Apr 28, 2011, 2:00:44 AM4/28/11
to publice...@googlegroups.com
Hola ! Señores.

- Favor alguien me puede ayudar con la siguiente presunta:

* Leyendo encontré que para que se permita solo la entrada de letras a un text_box a la hora de digitar que agregara la siguiente instrucción:
Ej.: THISFORM.Txt_Nombre.InputMask='AAAAAAAAAAAAAAAAAAAA'

El problema aquí es que éste debe capturar el nombre de un cliente;para los clientes que tienen 2 Nombres no me permite agregar espacios, cómo lo puedo realizar?

De ante mano Muchas Gracias.!!

Walter R. Ojeda Valiente

unread,
Apr 28, 2011, 2:09:21 AM4/28/11
to publice...@googlegroups.com
En lugar de formatear la entrada con las propiedades FORMAT o INPUTMASK puedes aceptar o rechazar caracteres en el método KEYPRESS()

Usando el operador $ podrás saber si el caracter ingresado por el usuario es uno de los caracteres válidos.

Saludos.

Walter.




Date: Thu, 28 Apr 2011 00:00:44 -0600
Subject: [vfp] Entrada de Datos en Text Box
From: stall...@gmail.com
To: publice...@googlegroups.com

Euro J. Nava L.

unread,
Apr 28, 2011, 9:41:39 AM4/28/11
to publice...@googlegroups.com

THISFORM.Txt_Nombre.Format=@A

Luis Maria Guayan

unread,
Apr 28, 2011, 9:44:20 AM4/28/11
to publice...@googlegroups.com
Debes configurar solo la propiedad Format con el valor "@A" (sin las comillas)

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

stallman stallman

unread,
Apr 28, 2011, 8:38:24 PM4/28/11
to publice...@googlegroups.com
Saludos Don Luis.

* Hice lo siguiente:

En el Init del Form: 

THISFORM.Txt_Nombre.Format=@A

* Me da el siguiente Mensaje: "El comando contiene una palabra o frase no reconocida"

Walter Boso

unread,
Apr 28, 2011, 8:55:30 PM4/28/11
to publice...@googlegroups.com
Cuando escribes el codigo tienes que colora el valor entre comillas
 
solo va sin comillas cuando asignas directamente el propiedad de objeto.

 
Walter Itabo Boso
Cabildo Abierto 1612 V.Hipodromo
Godoy Cruz (5547)
Mendoza
Argentina
Tel.: (54)(0261) 4281235
Cel.: 2614161434.-
Walte...@bosoft.com.ar
Walte...@yahoo.com.ar



De: stallman stallman <stall...@gmail.com>
Para: publice...@googlegroups.com
Enviado: jueves, 28 de abril, 2011 21:38:24
Asunto: Re: [vfp] Entrada de Datos en Text Box

stallman stallman

unread,
Apr 28, 2011, 9:04:25 PM4/28/11
to publice...@googlegroups.com
OK, muy bien, Gracias.

stallman stallman

unread,
Apr 28, 2011, 9:11:28 PM4/28/11
to publice...@googlegroups.com
Walter aun ésto no me resuelve el problema, te explico:

Establecí la siguiente propiedad del Text_Box en el Init del Form:

THISFORM.Txt_Nombre.Format='@A'

- Si quisierea escribir por Ejemplo: Luis Maria , solamente me permite: LuisMaria, es decir no me acepta los espacios.

Gracias

Walter R. Ojeda Valiente

unread,
Apr 28, 2011, 9:33:04 PM4/28/11
to publice...@googlegroups.com
Para esos casos, no debes usar las propiedades FORMAT ni INPUTMASK, utiliza el métido KEYPRESS() y allí le dices cuales son los caracteres aceptables.

Saludos.

Walter.




Date: Thu, 28 Apr 2011 19:11:28 -0600
Subject: Re: [vfp] Entrada de Datos en Text Box
From: stall...@gmail.com
To: publice...@googlegroups.com

stallman stallman

unread,
Apr 29, 2011, 12:04:37 AM4/29/11
to publice...@googlegroups.com
Walter Perdona mi ignorancia, no se cómo hacer ésto.

* En resumen quiero que se pueda digitar cualquier caracter excepto números.

- Si no te causo contratiempo o molestia quizás me puedas indicar cómo hacerlo.


De ante mano Mil gracias.

Walter R. Ojeda Valiente

unread,
Apr 29, 2011, 2:07:55 AM4/29/11
to publice...@googlegroups.com
Hola Stallman

Cada control TEXTBOX tiene un método llamado KEYPRESS() el cual se ejecuta cada vez que se presiona una tecla. Cuando estás diseñando tu formulario con el mouse selecciona tu control Textbox y busca dentro de Properties el método KeyPress(), haz doble click allí y escribe lo siguiente:

LPARAMETERS nKeyCode, nShiftAltCtrl
Local lcTecla
 
  lcTecla = Chr(nKeyCode)
 
  if !lcTecla $ "ABCDEFGabcdefg 1234567890"
    NODEFAULT
  endif
 
Return
*
*

En lugar de "ABCDEFGabcdefg 1234567890" debes escribir todos los caracteres que son aceptables. Si quieres aceptar solamente mayúsculas, entonces:
lcTecla = UPPER(CHR(nKeyCode))

y en ese caso no debes escribir las letras minúsculas dentro de las comillas, te quedaría: "ABCDEFG 1234567890"

Fíjate que el espacio en blanco es uno de los caracteres válidos. También puedes poner dentro de los caracteres aceptables las vocales acentuadas, la ñ, o lo que quieras.

Saludos.

Walter.



Date: Thu, 28 Apr 2011 22:04:37 -0600

Subject: Re: [vfp] Entrada de Datos en Text Box
From: stall...@gmail.com
To: publice...@googlegroups.com

stallman stallman

unread,
Apr 29, 2011, 2:43:11 AM4/29/11
to publice...@googlegroups.com
Mil Gracias Walter,no sabes cuanto te lo agradezco.

Saludos.

stallman stallman

unread,
Apr 29, 2011, 4:10:01 PM4/29/11
to publice...@googlegroups.com
Hola Walter.
 
* He transcrito las indicaciones tuyas y efectuado las pruebas pertinentes.
*Funciona muy bien la restricción de ingresar solo numeros,letras ó combinado, sin embargo no me acepta para nada los "Espacios en Blanco", cómo podría solucionarlo?
 
Te agradezco me puedas seguir orientando y colaborando. 

Yvan GMAIL

unread,
Apr 29, 2011, 4:14:38 PM4/29/11
to publice...@googlegroups.com

el codigo ascii 32 es para el espacio en blanco.. agregalo a tu lista de validaciones.

stallman stallman

unread,
Apr 29, 2011, 4:31:02 PM4/29/11
to publice...@googlegroups.com

Muchas gracias Yvan, sin embargo siguiendo el algoritmo de Walter cómo hago para que me reconozca el código ASCII como tal y no como caracteres numéricos?, ya que la validación de aceptación se incluye entre comillas (" ").

Yvan GMAIL

unread,
Apr 29, 2011, 4:31:51 PM4/29/11
to publice...@googlegroups.com

Cual es tu código. Pegalo para revisarlo.

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de stallman stallman
Enviado el: Viernes, 29 de Abril de 2011 03:31 p.m.
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Entrada de Datos en Text Box

 

Muchas gracias Yvan, sin embargo siguiendo el algoritmo de Walter cómo hago para que me reconozca el código ASCII como tal y no como caracteres numéricos?, ya que la validación de aceptación se incluye entre comillas (" ").

Walter R. Ojeda Valiente

unread,
Apr 29, 2011, 4:34:47 PM4/29/11
to publice...@googlegroups.com
Hola Stallman

Es que uno de los caracteres incluídos debe ser el espacio en blanco. En mi ejemplo te había puesto un espacio en blanco entre las letras y los números.

Saludos.

Walter.




Date: Fri, 29 Apr 2011 14:10:01 -0600

Subject: Re: [vfp] Entrada de Datos en Text Box
From: stall...@gmail.com
To: publice...@googlegroups.com

stallman stallman

unread,
Apr 29, 2011, 4:39:08 PM4/29/11
to publice...@googlegroups.com
En el método KeyPress() del Text Box, tengo lo siguiente:
 
Local lcTecla
 
  lcTecla = Chr(nKeyCode)
 
  if !lcTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ   abcdefghijklmnñopqrstuvwxyz"
    NODEFAULT
  ENDIF 
Return
 
 
- Lo que se quiere es que acepte solamente caracteres alfabéticos ya sea en mayúscula o minúscula.
 
Gracias.

Yvan GMAIL

unread,
Apr 29, 2011, 4:51:04 PM4/29/11
to publice...@googlegroups.com

Vi tu codigo.. y te aceptando caracteres por el espacio en blanco.. entendi que no te permitia.. como dice Walter para que te permita le agregas el espacio y si no lo quitas.

 

 

 

De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de stallman stallman
Enviado el: Viernes, 29 de Abril de 2011 03:39 p.m.
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Entrada de Datos en Text Box

 

En el método KeyPress() del Text Box, tengo lo siguiente:

stallman stallman

unread,
Apr 29, 2011, 4:53:55 PM4/29/11
to publice...@googlegroups.com
Hola Walter.
 
En efecto creo que lo hice igual.
En el método KeyPress() del Text Box, tengo lo siguiente:
 
Local lcTecla
 
  lcTecla = Chr(nKeyCode)
 
  if !lcTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ   abcdefghijklmnñopqrstuvwxyz"
    NODEFAULT
  ENDIF 
Return
 
 
- En la sana teoría existe el espacio donde cambia de mayúsulas a minúsculas y ésto entonces solamente permitirá caracteres alfabéticos ya sea en mayúscula o minúscula y espacios en "blanco"
 
Gracias.

stallman stallman

unread,
Apr 29, 2011, 4:58:01 PM4/29/11
to publice...@googlegroups.com
Gracias Yvan.
 
* Existe el espacio en blanco en medio de las mayúsculas y minúsculas:
 
                   "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ   abcdefghijklmnñopqrstuvwxyz"
 
* Aun así no me lo permite.

Walter R. Ojeda Valiente

unread,
Apr 29, 2011, 5:01:36 PM4/29/11
to publice...@googlegroups.com
¿Quitaste el INPUTMASK y el FORMAT?

Si vas a validar los caracteres con el método KEYPRESS() no deberías también hacerlo con el INPUTMASK ni con el FORMAT.

Saludos.

Walter.




Date: Fri, 29 Apr 2011 14:58:01 -0600
Subject: Re: [vfp] Entrada de Datos en Text Box
From: stall...@gmail.com
To: publice...@googlegroups.com

stallman stallman

unread,
Apr 29, 2011, 5:05:55 PM4/29/11
to publice...@googlegroups.com
Claro que si Walter.
 
- Lo volveré a revisar todo minusiosamente.
 
Gracias.

Walter R. Ojeda Valiente

unread,
Apr 29, 2011, 5:08:33 PM4/29/11
to publice...@googlegroups.com
Haz click con el botón derecho sobre tu control TextBox. Y verifica en la ventana "Properties" que INPUTMASK y que FORMAT estén vacíos.

También busca dentro de tu programa fuente las palabras FORMAT e INPUTMASK, y bórralas si las encuentras.

Saludos.

Walter.




Date: Fri, 29 Apr 2011 15:05:55 -0600

Subject: Re: [vfp] Entrada de Datos en Text Box
From: stall...@gmail.com
To: publice...@googlegroups.com

Yvan GMAIL

unread,
Apr 29, 2011, 5:10:35 PM4/29/11
to publice...@googlegroups.com

He pegado tu codigo en un  textbox y si me acepta el espacio en blanco.. debe estar algo de tu textbox como dice Walter.

Walter R. Ojeda Valiente

unread,
Apr 29, 2011, 5:31:35 PM4/29/11
to publice...@googlegroups.com
Claro, pero si tienes algo definido en las propiedades FORMAT o INPUTMASK éstas tomarán preferencia, por eso debes asegurarte que no haya algo escrito en ellas.

Saludos.

Walter.




Date: Fri, 29 Apr 2011 14:39:08 -0600
Subject: Re: [vfp] Entrada de Datos en Text Box
From: stall...@gmail.com
To: publice...@googlegroups.com

stallman stallman

unread,
Apr 29, 2011, 7:51:54 PM4/29/11
to publice...@googlegroups.com
Tienes razón Walter, en el init del form el objeto tenía inicializada la propiedad Format= "k"

Muchas Gracias y muy amable.

Francisco

unread,
Jul 7, 2013, 6:30:04 PM7/7/13
to publice...@googlegroups.com

El jueves, 28 de abril de 2011 03:00:44 UTC-3, stallman stallman escribió:
Hola ! Señores.
Has probado de la siguiente manera:
En el evento KeyPress del textbox sin poner nada en la propiedad Format

IF nKeyCode <> 13
IF !BETWEEN(nKeyCode ,65,127);
AND nKeyCode <> 32 
NODEFAULT 
ENDIF  
ENDIF

Saludos

 
- Favor alguien me puede ayudar con la siguiente presunta:

* Leyendo encontré que para que se permita solo la entrada de letras a un text_box a la hora de digitar que agregara la siguiente instrucción:
Ej.: THISFORM.Txt_Nombre.InputMask='AAAAAAAAAAAAAAAAAAAA'

El problema aquí es que éste debe capturar el nombre de un cliente;para los clientes que tienen 2 Nombres no me permite agregar espacios, cómo lo puedo realizar?

De ante mano Muchas Gracias.!!

Ricardo Pina

unread,
Jul 7, 2013, 8:16:44 PM7/7/13
to Grupo VFP
Hola Francisco
 
Te tengo que ser franco, el compañero ha perdido su trabajo y ahora se dedica a diseñar ikebanas navideñas por que no supo esperar 2 años tu respuesta.
Te sugiero una respuesta más pronta o nos quedaremos sin gente en el grupo.!!
 
Saludos de un viernes muyyyyyy largo.
 
 
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

Cristopher Antonio A.G

unread,
Jun 5, 2015, 3:51:13 PM6/5/15
to publice...@googlegroups.com, stall...@gmail.com
tengo una pregunta, como puedo hacer para que tambien me deje borrar o dezplazarme en el texto mediante las flechas del teclado ??? porfavor ayuda

Víctor Hugo Espínola Domínguez

unread,
Jun 5, 2015, 4:08:36 PM6/5/15
to publice...@googlegroups.com
Hola Cristopher Antonio

Local lcTecla
 
lcTecla = Chr(nKeyCode)
 
If m.nKeyCode >= 32
  If ! lcTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ abcdefghijklmnñopqrstuvwxyz" + Chr(127)
    NoDefault
  Endif
Endif

Saludos,
Víctor.
Lambaré - Paraguay.

Cristopher Antonio A.G

unread,
Jun 5, 2015, 4:43:22 PM6/5/15
to publice...@googlegroups.com, vich...@gmail.com
gracias , me sirvio. tengo otra pregunta, como puedo hacer para que cuando borren el texto que ingresen en un text, no retroseda asia otros text atras. 
es decir si el text esta en blanco y precionan la tecla de borrar, se sale del text y no quiero eso 

Víctor Hugo Espínola Domínguez

unread,
Jun 5, 2015, 4:50:04 PM6/5/15
to publice...@googlegroups.com
En el KEYPRESS agrega esto:

If m.nKeyCode == 127
    If This.SelStart = 0 And This.SelLength = 0
        Nodefault
        Return
    Endif
Endif

Saludos,
Víctor.
Lambaré - Paraguay.

Cristopher Antonio A.G

unread,
Jun 5, 2015, 4:52:54 PM6/5/15
to publice...@googlegroups.com, vich...@gmail.com
no me funciono. sigue regresando a un cuadro anterior.

Cristopher Antonio A.G

unread,
Jun 5, 2015, 4:57:20 PM6/5/15
to publice...@googlegroups.com, vich...@gmail.com
lo siento si funciono, solo que tuve que poner ese codigo asta el principio y con eso funciono muchisimas gracias por tu tiempo :)


El viernes, 5 de junio de 2015, 15:50:04 (UTC-5), Víctor Hugo escribió:

Cristopher Antonio A.G

unread,
Jun 5, 2015, 5:07:36 PM6/5/15
to publice...@googlegroups.com, arias_g...@hotmail.com, vich...@gmail.com
UNA PREGUNTA MAS, CUAL SERIA EL ASCII A PONER PARA QUE TAMPOCO CAMBIE DE TEXT AL PRESIONAR LAS FLECHAS DE DIRECCION. ?

Fernando D. Bozzo

unread,
Jun 5, 2015, 5:43:59 PM6/5/15
to publice...@googlegroups.com, arias_g...@hotmail.com, vich...@gmail.com
Hola Christofer:

Para preguntar en un foro, si no tiene relación con el hilo abierto se debe abrir uno nuevo.

Por favor, no uses cualquier hilo abierto para preguntar, porque si no estos hilos no sirven para nada ni para nadie.

Hay un botón que dice "Tema Nuevo", usalo y pon un buen título para saber de qué se trata.


Saludos.-

Esteban H

unread,
Jun 5, 2015, 6:48:21 PM6/5/15
to publice...@googlegroups.com

Sería bueno también que uses un corrector ortográfico dado que:

 

asia = ese un País pero debería ir en Mayúscula

precionan = No se que es

asta = palo de una bandera

 

Salvo que sea porque es Viernes!!! Je

 

Saludos.

 

Esteban.

Daniel Calonga

unread,
Feb 3, 2016, 8:55:17 AM2/3/16
to Comunidad de Visual Foxpro en Español
Hola! se que han pasado muchísimos días desde esta pregunta, pero quisiera aportar algo: Cuando utilicemos el evento KeyPress, podríamos ir "probando" las teclas especiales que vamos a permitir dentro del TextBox con:

wait wind str(nKeyCode)

Tedioso o no, de esta forma podremos ver el código ASCII de cada tecla pulsada.

Siguiendo con la misma idea, se puede agregar la siguiente variable local

cSpecialKeys = CHR(4) + CHR(5) + CHR(7) + CHR(9) + CHR(13) + CHR(15) + CHR(19) + CHR(23) + CHR(24) + CHR(127) + CHR(148)

Lo que hace esta expresión es crear la variable cSpecialKeys para incluir todos los caracteres correspondientes a flechas direccionales, TAB, Shift + TAB, ENTER, DELETE, etc.

Luego, dentro de la ya solución planteada por Walter Ojeda, tenemos:

lcTecla = CHR(nKeyCode)
IF !lcTecla $ "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ abcdefghijklmnñopqrstuvwxyz" + cSpecialKeys
    NODEFAULT
ENDIF


Saludos.

Carlos Miguel FARIAS

unread,
Feb 3, 2016, 3:38:04 PM2/3/16
to Grupo Fox
Y en la ayuda están todos esos códigos, para que probar?
Saludos: Miguel, La Pampa (RA)

Larga Vida con la Fuerza y prosperidad con la compañia

integral

unread,
Feb 3, 2016, 3:45:17 PM2/3/16
to Comunidad de Visual Foxpro en Español

Estimado Amigo :

Creo que ya te respondieron a tu pregunta pero no obstante deseo responder tu consulta con otra variante como solución a tu problema... 

IF BETWEEN(nKeyCode,ASC("0"),ASC("9"))                                    
  WAIT WINDOW "No se aceptan ingreso de Números" TIMEOUT .5
  ? CHR(7) 
  NODEFAULT 
ENDIF 

IF "!" $ THIS.Format .AND. (BETWEEN(nKeyCode,97,122) .OR. nKeyCode = 241) 
  nKeyCode = nKeyCode - 32
  NODEFAULT
  KEYBOARD CHR(nKeyCode)
ENDIF  

Espero también les sirva a otros colegas que tengan el mismo problema.

Saludos,

INTEGRAL
(Lima-Perú)
 
El jueves, 28 de abril de 2011, 1:00:44 (UTC-5), richard stallman escribió:
Hola ! Señores.

Reply all
Reply to author
Forward
0 new messages