FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Convertir variable tipo Word a Char
Hola,
Estoy haciendo una validacion en un TEdit y no se como anular la tecla Key en caso de que se cumpla una condicion. El problema es que necesito hacerlo en el OnKeyDown y en este la variable Key es de tipo Word. En el evento OnKeyPress usaba Key := #0 , pero aún convertiendolo con Word(#0) no funciona. También necesito comprobar si la tecla es un número de 0 a 9 o el backspace, en el OnKeyPress hacía Key in ['0'..'9', #8] . En definitiva necesitaría traducir este código del evento OnKeyPress al evento OnKeyDown. Código:
if not (Key in ['0'..'9', #8]) then Key := #0 else if (Key <> #8) and (StrToInt(TEdit(Sender).Text + Key) > 999) then Key := #0; |
#2
|
||||
|
||||
La respuesta a tu pregunta puede ser la función Chr()... pero para este caso no te recomiendo esto, sinó que compares contra los valores de los caracteres, esta es la traducción "literal" de tu código:
Código:
if not (Key in [48..57, 8]) then Key := 0 else if (Key <> 8) and (StrToInt(TEdit(Sender).Text + Chr(Key)) > 999) then Key := 0;
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
delphi.com.ar, gracias por tu pronta respuesta, estuve probando el código pero la sentencia Key := 0 no anula la tecla, el carácter igual es agregado al TEdit y también probé agregar el rango del 96 al 105 (teclado numérico) porque no las tenía en cuenta y me dice que no es un entero válido.
Saludos. |
|
|
|