Варинта у тебя 2:
1) Используем компонент TEdit и в обработчике событий OnKeyPress проверяем что ввел нам пользователь, если нас не устраивает то собственно страсываем значение Key.
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
const Digit: Set of Char=['0' .. '9'];
begin
if ((not (Key in Digit)) and (Ord(Key)<>8) and (Key<>DecimalSeparator)) then
begin
Key:=#0; //сбрасываем значение символа
Beep; //"пиликаем" указывая польщователю на неверный ввод
end;
end;
//DecimalSeparator тут нужен для того чтоб можно было вводить дробные
//значения, если не нужно то убери проверку на него.
2) Используем компнент TSpinEdit он предназначен именно для ввода числовых значений и ничего дополнтельного писать не потребуется.