Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   TEdit que acepte solo integer (https://www.clubdelphi.com/foros/showthread.php?t=14076)

Dave B. 09-09-2004 00:51:56

TEdit que acepte solo integer
 
Tengo un problema, quisiera validar el TEdit para que solo acepte números y no letras u otros caracteres, que me servirá para mandar el valor a un Array of integer. He estado intentando validar en el evento OnChange y de otras maneras pero no consigo buenos resultados.

roman 09-09-2004 01:05:40

Te conviene más el evento OnKeyPress:

Código Delphi [-]
if not (Key in ['0'..'9', #8]) then
  Key := #0;

Pero ten en cuenta que esto sólo evita que se escriban carcateres no numéricos pero no impide que se pegue texto con otros caracteres.

Para ello tendrías que crearte alguna componente derivada de TEdit que maneje el mensaje WM_PASTE:

Código Delphi [-]
interface

type
  TXEdit = class(TEdit)
  private
    procedure WMPaste(var Message: TWMPaste); message WM_PASTE;
  end;  

implementation

procedure TXEdit.WMPaste(var Message: TWMPaste);
var
  V, Code: Integer;

begin
  {
    Si el texto en el portapapeles no es un número
    evitar el procesamiento de este mensaje
  }
  Val(Clipboard.AsText, V, Code);
  if Code = 0 then
    inherited;  
end;

end.

// Saludos

Dave B. 09-09-2004 01:14:48

Muchas gracias, roman.


La franja horaria es GMT +2. Ahora son las 10:07:55.

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