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
Val(Clipboard.AsText, V, Code);
if Code = 0 then
inherited;
end;
end.
// Saludos