Hola marcos.
Existen dos modos que pueden ingresar caracteres que no son números, en forma directa y pegándolos sobre el Edit.
Para evitar el ingreso usa el evento OnKeyPress del Edit:
Código:
procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in [#8,#13,'0'..'9']) then
begin
Beep;
Key:= #0;
end;
end;
Para evitar que peguen caracteres no numéricos, usa el evento OnExit:
Código:
procedure TForm3.Edit1Exit(Sender: TObject);
var
n,cd: Integer;
begin
Val(Edit3.Text, n, cd);
if cd > 0 then
begin
ShowMessage('No es un número válido');
Edit1.SetFocus;
end;
end;
Saludos.