SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: ellerysammy en Jueves 29 de Abril de 2004, 00:26

Título: Ignorar Teclas
Publicado por: ellerysammy en Jueves 29 de Abril de 2004, 00:26
Estoy agregando informacion a una base de datos desde unos Edit en los datos que necesito capturar esta una Edad, pero lo que quiero hacer es que en el Edit que la intento capturar no se pudan introducir letras e hize lo siguiente en el evento KeyPress del Edit
[CODE]
if((Key < '0') || (Key > '9'))
  Key=0;

Pero al hacer esto tambie ignora el BackSpace es decir si se equivocan no pueden borrar como puedo hacer que ademas de aceptar solo numeros tambien tenga en cuenta cuando el usuario quiera corregir
Título: Re: Ignorar Teclas
Publicado por: _Viktor en Jueves 29 de Abril de 2004, 00:36
Si te sirve para numeros enteros positivos esta puede ser una solucion, en el constructor del formulario donde esta tu Edit haces lo siguiente:

Código: Text
  1. __fastcall TForm1::TForm1(TComponent* Owner)
  2.      : TForm(Owner)
  3. {
  4.     LONG dwStyle = GetWindowLong(Edit1-&#62;Handle, GWL_STYLE);
  5.  
  6.     SetWindowLong(Edit1-&#62;Handle, GWL_STYLE, dwStyle | ES_NUMBER);
  7. }
  8.  

Saludos!
Título: Re: Ignorar Teclas
Publicado por: The Black Boy en Jueves 29 de Abril de 2004, 00:47
Pues no se ... la solucion que yo tendría es utilizar un MaskEdit  con este tu podrias indicar que solo sean #s de una manera muy facil..

este objeto se encuentra en:


Citar

 En la hoja Additional de la paleta de componentes, seleccione el objeto MaskEdit   y colóquelo en la forma.

Con el inspector de objetos, seleccione la propiedad EditMask haciendo doble clic, en ese instante aparecerá un editor de tipos en el que existe una variedad de tipos de datos definidos de los que puede seleccionar posteriormente..

o si quieres puedes utilizar el sgte: escribe en el campo InputMask lo siguiente  por ejemplo 000 y luego le das Ok..  con esto solo podrá el usuario escribir #s y en una cantidad de solo 3 #s (son 3 ceros 000)  y el BackSpace  no tiene ningun problema

espero te sirva de lo contrario dime  lo que te pasó

Saludos :hola:
Título: Re: Ignorar Teclas
Publicado por: cibervicho en Jueves 29 de Abril de 2004, 03:23
otra manera de hacerlo es:

[CODE]
if((Key < '0') || (Key > '9') && Key != 8)
Key=0; //Donde 8 es igual a Backspace

Espero te sirva, y hechale un vistazo a la tabla de caracteres ASCII, con eso puedes encontrar muchas soluciones al calidar caracteres.

Suerte!!!
Título: Re: Ignorar Teclas
Publicado por: ellerysammy en Jueves 29 de Abril de 2004, 05:36
Gracias a todos me fueron muy utiles sus aportes....
(que mala costumbre de garadecer todo... bueno ni tan mala)...  :hola: