Ver Mensaje Individual
  #2  
Antiguo 09-09-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita