如何限制TEdit的输入?(50分)

  • 主题发起人 主题发起人 刘林
  • 开始时间 开始时间

刘林

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:
我现有一用来输入工资的TEdit控件,不知如何限制它只能输入数字,请各位大虾指点。
 
是输入金额么?
可以用sncCurrency控件,比较好用
www.softhouse.com.cn可以下载。
 
OnKeyPress(......)
begin
if (not key in['0'..'9']) and (key>31) then key:=#0;
end;
 
忘了是谁教的了:
SetWindowLong(edit1.handle, GWL_STYLE, GetWindowLong(edit1.handle, GWL_STYLE) or ES_NUMBER);
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': inherited;
else Key := #0;
end;
end;
 
用MaskEdit多简单。
 
用RX控件包的CurrencyEdit控件,包你满意,
它显示数字时前面还可以带一个人民币的符号
 
TEditValue
专门用予输数值的
 
cAkk,那是SupperMMX的一行解决啊
 
Croco的方法有效,而且很灵活,故奖赏30分。
cAkk的方法也能实现,故奖赏20分。
其它的方法,我实现不了。
 
以上的方法好是好啦,不过有一个致命的弱点, 它允许用“粘贴“命令
住EDIT控件中加入非数字字符,结果是你还得在ONCHANGE事件中分析EDIT
的内容, 让你痛苦不尽。不信你试试在EDIT中用字母内容“粘贴“一下试试
 
在MASK属性里加入“#”符号!如为5位整数,4位小数可以输入#####.####此外还可以在前面加入"¥、$"之类的符号。
 
if not (Key in ['0'..'9']) then
begin
Key:=#0;
beep;
end;
 
if not (Key in ['0'..'9']) then
begin
Key:=#0;
beep;
end;
可以不允许用“粘贴“命令
住EDIT控件中加入非数字字符非常好用
 
用maskEdit控件。
 
多人接受答案了。
 
后退
顶部