鱼C论坛

 找回密码
 立即注册
查看: 4504|回复: 8

[技术交流] Delphi编辑框只输入数字或者只输入字母

[复制链接]
发表于 2011-9-23 03:58:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Delphi编辑框只输入数字或者只输入字母
在Delphi中使用编辑框时,有时需要限制输入它的字符类型,如只接收数字或只接收字母。我们可以在TEdit组件的on..KeyPress事件中对输入进行处理,以限制对编辑框的输入。

限制为只接收数字的例程如下:

procedure TForm1.Edit1KeyPress(Sender: TObject; var..Key: Char);
begin
if not(key in['0'..'9',#8])then
begin
key:=#0;
MessageBeep(1);    //Beep; 调用系统声音也行!
end;
end;

程序通过TEdit组件的on..KeyPress事件,判断按键是否为0至9这10个数字键,或者是BackSpace键,如果不是则将该输入设置为空(key:=#0),将其屏蔽掉;如果是则接收字符输入。这里有一点需要说明的是,#8对应BackSpace键,我们不应将它也屏蔽掉,否则不能使用退格(BackSpace)键删除错误的数字输入。

同样,如果要限制编辑框只接收字母(不管大小写)输入,程序如下:

procedure TForm1.Edit1KeyPress(Sender: TObject; var..Key: Char);
begin
if not(key in['a'..'Z',#8])then
begin
key:=#0;
MessageBeep(1); //Beep; 调用系统声音也行!
end;
end;


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-23 04:17:05 | 显示全部楼层
版主太给力了,真是受益非浅。学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-10-12 12:27:30 | 显示全部楼层
if not(key in['a'..'Z',#8])then//-----------#8是什么意思?
key:=#0;//---------#0又是什么意思呢?
求解中。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-5 21:07:54 | 显示全部楼层
MessageBeep(1); //Beep; 调用系统声音也行!
-------------------------
这句怎么在我笔记本上不发声呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-7 20:50:12 | 显示全部楼层
果断强大..超版果然厉害..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-22 09:38:00 | 显示全部楼层
'0'..'9'中间全部写出来?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-4 21:28:22 | 显示全部楼层
if not(key in['a'..'Z',#8])then  //z应该是小写,不然不能用。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-7-2 12:21:15 | 显示全部楼层
看看老帖,支持下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-2-1 16:46:36 | 显示全部楼层
支持楼主发扬Delphi
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 03:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表