各位兄台:
我有个一个文本框,判断输入是否为数字,我用的是这样的一个方法:
procedure TForm1.edtusercardKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then
begin
showmessage ('輸入的不是数字,請輸入數字!');
key := #0;
exit;
end;
end;
==================================
可是存在问题,就是弹出的提示框要点击很多次才可以。真的,都不知道要点击多少次,最少都有4次呢?
请问,少爷,少奶奶怎么办哦?
我这里还有些分。
跟你们散分了。
我有个一个文本框,判断输入是否为数字,我用的是这样的一个方法:
procedure TForm1.edtusercardKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then
begin
showmessage ('輸入的不是数字,請輸入數字!');
key := #0;
exit;
end;
end;
==================================
可是存在问题,就是弹出的提示框要点击很多次才可以。真的,都不知道要点击多少次,最少都有4次呢?
请问,少爷,少奶奶怎么办哦?
我这里还有些分。
跟你们散分了。
解决方案 »
- delphi执行文件exe和dll问题
- 递归调用,数据库生成Treeview。为什么递归出错。请帮忙看一下
- 如何在Image显示图片的指定区域?
- FTPClient上传下载的问题
- 两个access数据库中的表都相同,现在要判断,从相同表取出的某一条记录是否一致,怎么办?
- 编译一段小程序老是出现错误?$@#?^
- 大虾救我,DEPHI控件问题
- 图形问题,很急(第19天)!1分+500元人民币!
- 请问如何让delphi2007中的memo控件能显示unicode编码的汉字呢?谢谢啊
- 请问如何使用tregistry得到某个项的默认值?谢谢
- VISTA系统上的delphi程序访问 windows 2003 上的sql server 2005特别慢
- 关于用delohi向oracle某个字段补序列号的问题
if not (key in ['0'..'9',#8]) then
begin
//showmessage ('輸入的不是数字,請輸入數字!');
key := #0;
//exit;
end;
end;
把这个注释去掉
procedure TForm1.edtusercardKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then
begin
label1.caption='不是数字'; //在输入框后面放个label, 是数字就绿色显示。不是数字就红色显示。
key := #0;
label1.... //label显示红色
exit;
end
else
label1.... //label显示绿色
end;
begin
if not (key in ['0'..'9',#8]) then
begin
key := #0;
end;
end;
//输入数字
procedure TForm1.FormCreate(Sender: TObject);
var
style: DWord;
begin
style:= GetWindowLong(edtusercard.Handle, GWL_STYLE);
SetWindowLong(edtusercard.Handle, GWL_STYLE, styleor ES_NUMBER);
end;
//输入过滤
procedure TForm1.edtusercardKeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then key := #0;
end;
//输入完成可以这样判断
var Temp:Integer;
if TryStrToInt(edtusercard.Text,Temp) then
begin
end;
前两种方法都不能过滤掉 右键菜单->复制的过滤,我一般屏蔽右键菜单,关键还是要做最后执行的判断!
edtusercardKeyPress的时候,先判断
IF SHOWED THEN EXIT;
下面你的代码