if not (key in ['0'..'9',#8],'.') then begin if (key='.') and (pos('.',Tedit(sender).Text)=0) then exit; key:=#0; showmessage('必须填入数字!'); end; v
在exit事件 try strtofloat(edit1.text) except edit1.setfouse; exit; end
KeyPress事件 if not (key in ['0'..'9', #8, #27, #13]) then //Tab键, 回退键, 回车键 begin key := #0; Exit; end;如果需要输入小数,请参考一下 linzhisong(無聊) 的回复
if key not in['0','1','2','3','4','5','6','7','8','9'] then begin key:=#0 ; end;
用VAL函数,在检查EDIT时,可以VAL(edit1.text,a,b);其中A是返回的值,B是错误的值,如果B是0,说明输入全为数字,B为1,2,各代表不同意义,你自己试试。不过这个方法只能输入整数,小数不是非常好用。还有一种方法是可以输入小数的。 try strtofloat(edit1.text) except showmessage('只能输数字'); edit1.setfouse; exit; end linzhisong(無聊) 的方法麻烦一点
onkeypressif (Key=#27) or (Key=#8) then exit; if not (Key in ['0'..'9','+','-'] ) then Key:=#0;
//过滤掉字符串中的非整型字符 function GetInteger(strInteger : string):string; var I, Code: Integer; strTemp : string; begin strTemp := trim(strInteger); Val(strTemp, I, Code); if Code <> 0 then begin strTemp := copy(strTemp,1,Code-1) + copy(strTemp,Code+1,length(strTemp)-Code); end; Result := strTemp; end;procedure TForm1.Edit1Change(Sender: TObject); begin Edit1.Text := GetInteger(Edit1.Text); end;
SetWindowLong(Edit1.Handle, GWL_STYLE,GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);
begin
if (key='.') and (pos('.',Tedit(sender).Text)=0) then exit;
key:=#0;
showmessage('必须填入数字!');
end;
v
try
strtofloat(edit1.text)
except
edit1.setfouse;
exit;
end
if not (key in ['0'..'9', #8, #27, #13]) then //Tab键, 回退键, 回车键
begin
key := #0;
Exit;
end;如果需要输入小数,请参考一下 linzhisong(無聊) 的回复
begin
key:=#0 ;
end;
try
strtofloat(edit1.text)
except
showmessage('只能输数字');
edit1.setfouse;
exit;
end
linzhisong(無聊) 的方法麻烦一点
if not (Key in ['0'..'9','+','-'] ) then Key:=#0;
function GetInteger(strInteger : string):string;
var
I, Code: Integer;
strTemp : string;
begin
strTemp := trim(strInteger);
Val(strTemp, I, Code);
if Code <> 0 then begin
strTemp := copy(strTemp,1,Code-1) + copy(strTemp,Code+1,length(strTemp)-Code);
end;
Result := strTemp;
end;procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit1.Text := GetInteger(Edit1.Text);
end;
StrToInt(Edit1.Text);
Except
MessageBox(self.Handle,'请输入正确的数字!','错误',MB_ICONERROR);
Exit;
End;