سلام واسه اینکه در زمان تایپ کردن جلوی کاراکتری که نمی خوای رو بگیری کد زیر رو استفاده کن
در اینجا هرچیزی غیر از اعداد توی ادیت تایپ میشه :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Pos(Key,'0123456789') <> 0 then Key := #0;
end;
در اینجا فقط اعداد تایپ میشن :
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Pos(Key,'0123456789') = 0 then Key := #0;
end;
در مورد Paste شدن سیستمش فرق میکنه , چون ممکنه تعداد زیادی کاراکتر همزمان توی ادیت paste بشه , چیزی که به نظرم میرسه اینه که توی خاصیت OnChange ادیت یه حلقه بذار که از اول تا آخر کاراکترای ادیتت رو چک کنه اگر کاراکتری که نمیخوای وجود داشت اونو حذف کنه , البته اینکار یکم غیر اصولی بنظر میاد .