PDA

Ver la Versión Completa : Convertir variable tipo Word a Char


andre
15-12-2003, 19:37:58
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.
if not (Key in ['0'..'9', #8]) then
Key := #0
else
if (Key <> #8) and (StrToInt(TEdit(Sender).Text + Key) > 999) then
Key := #0;
Muchas gracias.

delphi.com.ar
15-12-2003, 19:44:20
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:
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;


Saludos!

andre
15-12-2003, 20:15:23
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.