怎样使文本框(edit1)只能输入阿拉伯数字,不能输入中文或英文及符号?(20分)

  • 主题发起人 主题发起人 pokar
  • 开始时间 开始时间
P

pokar

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样使文本框(edit1)只能输入阿拉伯数字,不能输入中文或英文及符号?
 
为什么不用maskedit
 
在Edit的KeyPress事件中加入
if not (key in ['0'..'9',#8,#13,'.']) then
key:=#0;
 
在Edit的KeyPress事件中加入
if key<chr(48) or key >chr(57) then key=chr(16)
 
if not (key in ['0'..'9',#8,#13,'.']) then
key:=#0;
這個安全好用!!
 
要这样控件吗,给你一个?
 
maskedit 比较好
 
最全面/最安全
procedure TForm3.Edit4KeyPress(Sender: TObject; var Key: Char);
var
i:Integer;
begin
if not (key in [#48..#59,#8,#13,#46]) then
key:=#0
else
begin
if key=#13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
if key=#46 then
begin
for i:=1 to Length(Edit4.Text) do
begin
if Copy(Edit4.Text,i,1)='.' then
key:=#0;
end;
end;
end;
end;
 
在Edit的KeyPress事件中控制

 
在EDIT1的EXIT事件中写
TRY
FLOATTOSTR(EDIT1。TEXT)
EXCEPT
EDIT1。SETFOURCE
END
 
on key press 事件中

IF not((ord(key)-ord('0')) in [0..9]) and (ord(key)<>8) then
key:=#0;
这样也可以实现,前面是限制只能输入数字,后边是backspace键
 
procedure TForm3.Edit4KeyPress(Sender: TObject; var Key: Char);
var
i:Integer;
begin
if not (key in [#48..#59,#8,#13,#46]) then
key:=#0
else
begin
if key=#13 then
begin
key:=#0;
perform(WM_NEXTDLGCTL,0,0);
end;
if key=#46 then
begin
for i:=1 to Length(Edit4.Text) do
begin
if Copy(Edit4.Text,i,1)='.' then
key:=#0;
end;
end;
end;
end;
 
后退
顶部