yhzxwn 发表于 2011-9-23 03:58:41

Delphi编辑框只输入数字或者只输入字母

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;


wx2528525876 发表于 2011-9-23 04:17:05

版主太给力了,真是受益非浅。学习了

㊣版小卡 发表于 2011-10-12 12:27:30

if not(key in['a'..'Z',#8])then//-----------#8是什么意思?
key:=#0;//---------#0又是什么意思呢?
求解中。。。

jfaumt 发表于 2011-11-5 21:07:54

MessageBeep(1); //Beep; 调用系统声音也行!
-------------------------
这句怎么在我笔记本上不发声呢?

yipwing 发表于 2011-11-7 20:50:12

果断强大..超版果然厉害..{:5_109:}

sealy 发表于 2011-11-22 09:38:00

'0'..'9'中间全部写出来?

壹个闲人 发表于 2011-12-4 21:28:22

if not(key in['a'..'Z',#8])then//z应该是小写,不然不能用。

Cocol 发表于 2013-7-2 12:21:15

看看老帖,支持下

Angel丶L 发表于 2015-2-1 16:46:36

支持楼主发扬Delphi
页: [1]
查看完整版本: Delphi编辑框只输入数字或者只输入字母