EDIT问题(100分)

  • 主题发起人 xiaoming99129
  • 开始时间
X

xiaoming99129

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好,有个问题想请教大家,DELPHI中如何来限制用户在的EDIT输入非数字的其他字符,代码要怎么写,请大家帮忙,数字的ASCII码是什么?谢谢!!
 
P

pjwork

Unregistered / Unconfirmed
GUEST, unregistred user!
  限制为只接收数字的例程如下:

   procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
   begin
   if not(key in['0'..'9',#8])then
    begin
     key:=#0;
     MessageBeep(1);
    end;
   end;

  程序通过TEdit组件的OnKeyPress事件,判断按键是否为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);
    end;
   end;
 
X

xiaoming99129

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢两位对我问题的回答,谢谢!!!
 
I

iamy

Unregistered / Unconfirmed
GUEST, unregistred user!
key not In ['0'..'9']
可以判断一般的无符号整型
其他还有很多种类型
 
R

rabbitlzx

Unregistered / Unconfirmed
GUEST, unregistred user!
小数点,delete键,方向键
 
D

dcsdcs

Unregistered / Unconfirmed
GUEST, unregistred user!
还要计算-
 
S

smithcouple

Unregistered / Unconfirmed
GUEST, unregistred user!
一行搞定

设置只能输入数字,Del和退格键均有效:
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
恢复:
SetWindowLong(Edit1.Handle, GWL_STYLE,
GetWindowLong(Edit1.Handle, GWL_STYLE) and not ES_NUMBER);
 
顶部