数字输入问题(10分)

  • 主题发起人 主题发起人 jenemery
  • 开始时间 开始时间
J

jenemery

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:怎么样在edit控件中控制只能输入数字?


在线等待。。。
 
使用maskedit,编辑它的属性(EditMask)使其作用于数字
 
最最简单的方法
再TEdit的OnChange方法里
try
StrToInt(Edit.Text);
except
....
end;

 
maskedit?什么东东,没有用过,我只知道用asl码控制。

但是我具体忘记怎么写了,而且也忘记了那些asl码了。。。
 
我有一个控件只能输入数字。
 
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key in ['0'..'9','.'] then //支持小数点
else
begin
abort;
end;
end;
 
我自己的函数,在TEdit的OnKeyPress事件中写
另外你参考一下这个贴子
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1385827

procedure CheckKey(Sender: TObject; Index: integer; var Key: Char);
var
Found: boolean;
i,SelSt,j: Integer;
TmpStr: string;
begin
with (Sender as TEdit) do
begin
j :=0;
SelSt :=SelStart;
if (Key = Chr(vk_Back)) and (SelLength <> 0) then
TmpStr := Copy(Text,1,SelStart)+Copy(Text,SelLength+SelStart+1,255)
else if Key = Chr(vk_Back) then {SelLength = 0}
TmpStr := Copy(Text,1,SelStart-1)+Copy(Text,SelStart+1,255)
else if Key in ['0'..'9'] then
begin
TmpStr := Copy(Text,1,SelStart)+Key+Copy(Text,SelLength+SelStart+1,255);
j :=1;
end
else {Key in ['A'..'Z', etc]}
TmpStr := Copy(Text,1,SelStart)+Copy(Text,SelStart+1,255);

if (Key = Chr(vk_Back)) and (SelSt > 0) then
Dec(SelSt)
else if Key <> Chr(vk_Back) then
Inc(SelSt);
Key := #0; { indicate that key was handled }
if SelSt = 0 then
begin
Text:= '';
Exit;
end
else
begin
Text :=TmpStr;
SelStart :=SelSt+j;
end;
end;
end;
 
多人接受答案了。
 
后退
顶部