MaskEdit ist zwar die bessere Variante (ich sage nur: Zwischenablage), aber Deinen Code kannst Du noch geringfügig erweitern:
Delphi-Quellcode:
procedure TForm2.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if Not(Key in ['0'..'9',#8]) then
abort;
end;
Aber wie gesagt, MaskEdit wäre besser.