Foros del Web » Programación para mayores de 30 ;) » Programación General »

Que no me meta letras (C++ Builder)

Estas en el tema de Que no me meta letras (C++ Builder) en el foro de Programación General en Foros del Web. Hola a todos, Quiero controlar que el usuario no pueda meter letras en un "Edit", sólo números. He pensado en usar una máscara "MaskEdit" pero ...
  #1 (permalink)  
Antiguo 10/05/2005, 12:24
 
Fecha de Ingreso: enero-2005
Mensajes: 87
Antigüedad: 19 años, 4 meses
Puntos: 0
Que no me meta letras (C++ Builder)

Hola a todos,

Quiero controlar que el usuario no pueda meter letras en un "Edit", sólo números. He pensado en usar una máscara "MaskEdit" pero veo que no es la forma ideal para hacerlo.

¿Alguien puede ayudarme?

Gracias a todos!
  #2 (permalink)  
Antiguo 10/05/2005, 12:29
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
No si habra alguna propiedad que sea Numeric o algo asi, fijate.

Si es un TEdit podes usar el evento OnKeyPress o en su defecto hacer subclassing.

Tambien podes establecer el style o ES_NUMBER con SetWindowLong.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 15/05/2005, 12:08
 
Fecha de Ingreso: enero-2005
Mensajes: 87
Antigüedad: 19 años, 4 meses
Puntos: 0
Soy algo novato y ando bastante perdido...

- Sé hacer una máscara para controlar las entradas de datos...

- Sé asignar el tipo de datos que pueda tomar un campo en una BD...

Lo que no sé hacer, es evitar que escriban letras en un Edit1->Text

Gracias por tu ayuda
  #4 (permalink)  
Antiguo 16/05/2005, 15:51
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Una forma de empezar es con algo como metiendo codigo dentro de algun evento de tecla, como OnKeyPress():

If(Key < '1' && Key > '0') //se sale del rango 1-0
Key = 0; //no hacer nada, es como si no pulsara tecla

No recuerdo si la asignacion a cero es la correcta o si se recomienda una constante, pero eso lo encuentras en la ayuda del OnKeyPress
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 17/05/2005, 00:32
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Si, esa fue una de las alternativas que le di si estaba usando un TEdit.
Para no permitir letras y si numeros podrias usar esta comprobacion cuyos limites son 0 y 9.

if (Key < '0' && Key > '9') { Key = 0; }
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #6 (permalink)  
Antiguo 17/06/2005, 05:27
 
Fecha de Ingreso: enero-2005
Mensajes: 87
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias eternal idol...

Funciona perfectamente pero, ¿cómo puedo habilitar la tecla de borrado?

He probado con Key='\b' pero no funciona... :(

Gracias!!
  #7 (permalink)  
Antiguo 17/06/2005, 05:35
 
Fecha de Ingreso: enero-2005
Mensajes: 87
Antigüedad: 19 años, 4 meses
Puntos: 0
Ya me he dado cuenta, era Key=*"\b"

Saludos!!
  #8 (permalink)  
Antiguo 06/08/2009, 21:32
 
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 127
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Que no me meta letras (C++ Builder)

Hola

Asi como puedo habilitar ciertos caracters del Teclado como el BackSpace, me gustaria saber el listado de otros caracteres que me gustaria habilitar. Se lo agradeceria Mucho.
Lista:
'\b'=Barra Espaciadora
.
.
.
.

Se los Agradeceria mucho.
  #9 (permalink)  
Antiguo 07/08/2009, 09:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Que no me meta letras (C++ Builder)

Hola, Calle7.

Por favor, no uses temas viejos para realizar preguntas.
Mejor abre un tema nuevo para el efecto.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:34.