注册 登录
编程论坛 Delphi论坛

[求助]=======斑竹帮忙啊======小问题,大家来帮个忙?========

ecust_haibo 发布于 2007-04-12 19:23, 538 次点击
刚刚学习DELPHI不久, 碰到个问题, 大家帮忙解决一下,问题如下:
有个edit控件,在上面输入内容后, 点击按钮确认, 判断输入的内容是不是数字.一定要点过按钮后判断,不能是按键时判断,比较急,大家帮忙解决吧,谢谢拉

[此贴子已经被作者于2007-4-12 19:28:06编辑过]

8 回复
#2
ecust_haibo2007-04-12 19:33

自己顶一个吧,真的是比较急

#3
sgliuxiu2007-04-12 20:16

呵呵,给你我的代码,我是判断是数字或者回车,#13是回车

procedure Tsfczform.yhjfKeyPress(Sender: TObject; var Key: Char);

begin
if (not (key in ['0'..'9',#13])) then key:=#0 ;
yespost.Enabled:=true;
prin.Enabled:=true;

end;

你只要这句就行了 if (not (key in ['0'..'9',#13])) then ***** ;

#4
ecust_haibo2007-04-12 20:43
你这个不是我想要的, 我是想写个公用的函数, 参数就是TEdit这个控件, 请LS的兄弟继续帮忙,谢谢
#5
anthony6342007-04-12 21:11

function judge():Boolean;
var
tempStr: string;
i: Integer;
begin
tempStr := Form1.Edit1.text;
for i := 1 to (Length(tempStr)-1) do
begin
if StrToIntDef(tempStr[i],-1) = -1 then
begin
Break;
end
else
begin
Continue;
end;
end;
if i = Length(tempStr) then
begin
Result := True;
end
else
begin
Result := False;
end;
end;

如果输入的数字10位以内可以直接用strtointdef来判断就可以了,如果输入的很长,可以试下上面哪个

[此贴子已经被作者于2007-4-13 9:23:19编辑过]

#6
ecust_haibo2007-04-13 08:47
我试了, 不行啊, 大家继续帮忙把
#7
nongen2007-04-13 08:57
try
i:=strtofloat(edit1.text);
except
//message:不是数字
end;
#8
anthony6342007-04-13 09:31

晕死,都怪我没编译就弄上去,nongen的方法好很多哈,还可以判断实数。

#9
ecust_haibo2007-04-13 10:15
谢谢nongen,anthony634:)
1