Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Filtrar entrada de teclado (https://www.clubdelphi.com/foros/showthread.php?t=23644)

rolando_s 23-07-2005 21:03:03

Filtrar entrada de teclado
 
Hola foreros yo con mas dudas que nunca

estoy tratando de filtrar los datos que se ingresan a una aplicacion tengo un tedit1 en el que se ingresan los datos pero quiero que solo se ingresen numeros enter tab y borrar.
el codigoque tengo abisa que se ingreso una letra u otro caracter pero permite que se escriba.
lo que busco es algo que no permita que se escriban los demas caracteres.
si me pueden orientar un poco se los agradecere.

procedure TVentas_b.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);

Begin
if not(chr(Key) in ['0','1', '2','3','4','5','6','7','8','9' ]) then
ShowMessage('solo numeros');
end;
end.

Lepe 23-07-2005 21:44:59

Código Delphi [-]
procedure TVentas_b.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);

  Begin
    if key > 31 then // Dejamos que se pulsen teclas de control
      if not(chr(Key) in ['0','1', '2','3','4','5','6','7','8','9' ]) then
          key := 0; // esto es lo que faltaba, anulamos la tecla.
  end;
end.

Por cierto, si usa el portapapeles, si permitirá pegar letras :(

Un saludo

dec 23-07-2005 21:51:58

Hola,

Esto no parece tener problemas con el portapapeles:

Código Delphi [-]
 procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
 begin
   // #8 is Backspace
   if not (Key in [#8, '0'..'9']) then begin
     ShowMessage('Invalid key');
     // Discard the key
     Key := #0;
   end;
 end;
Por cierto que lo encontré aquí.

Actualización: Parece que sí hay algún problema con el portapapeles: No vale "pegar" letras, ¡pero tampoco números! :(

rolando_s 23-07-2005 22:20:13

gracias
 
el codigo que envio lepe funciona 'OK'
en el anterior parece faltar un #antes del 0para que aule la tecla

gracias a ambos


La franja horaria es GMT +2. Ahora son las 15:55:49.

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