Run-time error número 106

Mensaje original: Invalid numeric format Traducción: Formato numérico inválido
Descripción:

Este error lo generan Read o ReadLn cuando:

Ejemplo:
var
  a: integer;
begin
  Write('Ingrese un número: ');
  ReadLn(a);
end.

Y el usuario intenta ingresar un caracter o una cadena de caracteres

Para evitar esto se debe hacer:

var
  a, c: integer;
  b: string;
begin
  Write('Ingrese un número: ');
  ReadLn(b);
  Val(b,a,c);
  if (c <> 0) then WriteLn(b,' no es un número.')
  else WriteLn(b,' es un número.');
end.

Quedando en a el valor numérico de b en el tipo especificado.