procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if pos(key,'0123456789') =0 then begin messagebeep(1); key:=#0; end; end;
procedure Tf_cx_j.Edit1Exit(Sender: TObject); begin if edit1.Text='' then exit else try strtodate(edit1.Text); except begin messagebox(f_cx_j.Handle,'请输入正确的数字格式!','提示',mb_ok+mb_iconwarning); edit1.SetFocus; end; end; end;
来个最简单的 :)setwindowlong(edit1.Handle,GWL_STYLE,getwindowlong(edit1.Handle,GWL_STYLE) or ES_NUMBER);
begin
if pos(key,'0123456789') =0 then
begin
messagebeep(1);
key:=#0;
end;
end;
begin
if edit1.Text='' then
exit else
try
strtodate(edit1.Text);
except
begin
messagebox(f_cx_j.Handle,'请输入正确的数字格式!','提示',mb_ok+mb_iconwarning);
edit1.SetFocus;
end;
end;
end;
如果要我用ctrl_v上去就不行了~~所以,建议在onchange事件里写判断用
zzzai(zzzai) 的方法。
另,用pos好象也可以。
将Edit1.text转换为Int,如果不能转换就赋0
高!
好像还应该加上回车,退格。