有没有什么好方法设置TEdit控件的取值范围?

Vicar2 2003-06-26 09:31:17
比如说我的应用程序规定只能在edit1中输入0--20之间的值。

那么我必须
1)判断输入的是否为数字.
2)判断输入的是否在0--20之间。

比较麻烦,应该怎么处理比较好?
...全文
94 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vicar2 2003-06-26
  • 打赏
  • 举报
回复
有一个原因是如果需要的这样的edit控件比较多的话, 事件代码重复多。
我想了,还是用一个函数来统一判断得了。edit控件把自身引用和最大最小值传给这个函数。
lion_lh 2003-06-26
  • 打赏
  • 举报
回复
用SpinEdit控件好了,设置maxvalue:=20
xiaoxiao197821 2003-06-26
  • 打赏
  • 举报
回复
在change里面写
分三部
1、判断是否合法字符
2、去掉前面的0
3、判断取值范围
Vicar2 2003-06-26
  • 打赏
  • 举报
回复
continue. :)
wangl 2003-06-26
  • 打赏
  • 举报
回复
你只需要在TEdit的OnExit事件里判断即可。
if Trim(Edit1.Text) = '' then Exit; //或给出提示,强行让其输入
if (StrToInt(Edit1.Text)< 0) or (StrToInt(Edit1.Text)>20) then
begin
Application.MessageBox('你自己认为合适的话','提示',mb_ok);
Exit;
end;
fenglik 2003-06-26
  • 打赏
  • 举报
回复
在Edit的onkeyPress事件中
if not (Key in['0'..'9',#8,#13]) then
begin
showmessage('not Number');
key:=#0;
end
else if (strtoint(Edit1.text)<0) and (Strtoint(Edit1.text)>20) then
showmessage('Number not in 0--20');
fenglik 2003-06-26
  • 打赏
  • 举报
回复
在Edit的onkeyPress事件中
if not (Key in['0'..'9',#8,#13]) then
begin
showmessage('not Number');
key:=#0;
end
else if (strtoint(Edit1.text)<0) and (Strtoint(Edit1.text)>20) then
showmessage('Number not in 0--20');
stall 2003-06-26
  • 打赏
  • 举报
回复
用MASKEDIT可以,也可:

var
aa:byte;
begin
try
aa:=strtoint(edit1.text);
aa:=20-aa;
except
showmessage('error');
end;
end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧