如何让一个文本框只输入数字而不能输入别的字符

willsound 2001-07-19 10:43:15
...全文
124 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
little_hero 2001-07-19
  • 打赏
  • 举报
回复
同意楼上。
Nicky_he 2001-07-19
  • 打赏
  • 举报
回复
推荐用MaskEdit.
Crob 2001-07-19
  • 打赏
  • 举报
回复
改一下控件名,呵呵

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ord(Key)=8 then begin
exit;
end;

//以下同时设置了文本框的长度不能超过8
if (Edit1.SelLength = 8)
and ((ord(Key)>=48) and (ord(Key)<=57) or (ord(Key)=8) or (ord(Key)=36) or (ord(Key)=35) or (ord(Key)=38) or (ord(Key)=40) or (ord(Key)=37) or (ord(Key)=39)) then
begin
exit;
end;
Crob 2001-07-19
  • 打赏
  • 举报
回复
最完美的解决这个问题的代码:)

如下:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if ord(Key)=8 then begin
exit;
end;

if (editCustId.SelLength = 8)
and ((ord(Key)>=48) and (ord(Key)<=57) or (ord(Key)=8) or (ord(Key)=36) or (ord(Key)=35) or (ord(Key)=38) or (ord(Key)=40) or (ord(Key)=37) or (ord(Key)=39)) then
begin
exit;
end;
taozc 2001-07-19
  • 打赏
  • 举报
回复
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) then
Key:=#0;
end;
dana 2001-07-19
  • 打赏
  • 举报
回复
isvalidident()
dingsg111 2001-07-19
  • 打赏
  • 举报
回复
agree powerlee(老李飞刀) 
powerlee 2001-07-19
  • 打赏
  • 举报
回复
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9']) then begin
key := #15;
end;

end;
Kingron 2001-07-19
  • 打赏
  • 举报
回复
在OnKeyXXX中携带马就可以了啊。
BCB 2001-07-19
  • 打赏
  • 举报
回复
在Edit的键盘事件中控制或改用TMaskEdit

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧