так проверь, чего он там ввёл
procedure Val(s: string; var value: integer; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: shortint; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: smallint; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: int64; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: byte; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: word; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: longword; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: uint64; var err: integer);
Преобразует строковое представление s целого числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: real; var err: integer);
Преобразует строковое представление s вещественного числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
procedure Val(s: string; var value: single; var err: integer);
Преобразует строковое представление s вещественного числа к числовому значению и записывает его в переменную value. Если преобразование успешно, то err=0, иначе err>0
Второй вариант - поставь реакцию на ошибку ввода.
напиши "множество"=["0","1",...];
потом проверь
if ввод in "множество"= true then дальше иначе ошибка