• Viernes 5 de Julio de 2024, 08:06

Autor Tema:  Ignorar Teclas  (Leído 1666 veces)

ellerysammy

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Ignorar Teclas
« en: Jueves 29 de Abril de 2004, 00:26 »
0
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
No importa cuan ocupado estes, sino cuanto de lo que realmente importa estas haciendo

_Viktor

  • Miembro MUY activo
  • ***
  • Mensajes: 271
    • Ver Perfil
    • http://AyudaCBuilder.foros.st
Re: Ignorar Teclas
« Respuesta #1 en: Jueves 29 de Abril de 2004, 00:36 »
0
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!
_Viktor _Yañez_
"Ser inteligente no es ser mas, solo equivocarse menos y no usar visual basic"

http]

The Black Boy

  • Miembro de PLATA
  • *****
  • Mensajes: 1043
  • Nacionalidad: co
    • Ver Perfil
    • http://www.mslatam.com/latam/technet/mva2/Microsite.aspx?alias=JairoDiaz
Re: Ignorar Teclas
« Respuesta #2 en: Jueves 29 de Abril de 2004, 00:47 »
0
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:
El inteligente no es aquel que lo sabe todo
sino aquel que   sabe utilizar lo poco que sabe.


Espacio Personal

si necesitas algo de programacion click aqui, si no esta aqui no existe

Programacion]

cibervicho

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Ignorar Teclas
« Respuesta #3 en: Jueves 29 de Abril de 2004, 03:23 »
0
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!!!
·.·´¯`·.· ¤ D@vid ¤ ·.·´¯`·.·®

ellerysammy

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
Re: Ignorar Teclas
« Respuesta #4 en: Jueves 29 de Abril de 2004, 05:36 »
0
Gracias a todos me fueron muy utiles sus aportes....
(que mala costumbre de garadecer todo... bueno ni tan mala)...  :hola:
No importa cuan ocupado estes, sino cuanto de lo que realmente importa estas haciendo