Para que solo te reciba números, lo que podes hacer es utilizar el evento Change(), y evaluas las entradas con la funcion Isnumeric
if not (isnumeric(text1)) then
sentecias
else
sentencias
endif
Otra de las cosas que podés hacer es utilizar un MaskEdBox (no me acuerdo como se escribe) y le pones en la propiedad mask = 9999999
de acuerdo a lo que vos queres.
Con respecto a la tecla se me ocurre que podrías evaluarlo con el evento Keypress o con Keydown teniendo en cuenta el valor de la tecla que vos queres. (por ej. Enter=13)