Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Convertir variable tipo Word a Char (https://www.clubdelphi.com/foros/showthread.php?t=6026)

andre 15-12-2003 19:37:58

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;

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:
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.


La franja horaria es GMT +2. Ahora son las 15:31:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi