Puede ser más cómoda la funcion StrToIntDef, si no se puede convertir la cadena a numero, suministras un valor predefinido, así no te lanza excepciones y no tienes que mirar códigos de error.
para que no introduzca los caracteres, podría ser algo así en el OnKeyDown del Tedit
Código Delphi
[-]
const Numeros = ['0'..'9']
begin
if not(chr(key) in numeros) and (key >30) then
key := 0; end;
key > 30 es para permitir pulsar las teclas de control, insertar, suprimir, etc.
Modificalo segun lo necesites. Un saludo