(100分delphi编程)edit中只允许输入大于零的整数怎么实现?
下面这段代码错在哪里?procedureTForm1.Edit1KeyPress(Sender:TObject;varKey:Char);beginif(not(keyi...
下面这段代码错在哪里?
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (not (key in ['0'..'9',#8])) or (strtoint(LeftStr(trim(edit1.text),1))<>0) then
key:=#8;
showmessage('请输入大于零的整数');
exit;
end;
谢谢大家的帮助
上面的代码有错误,现改成如下:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (not (key in ['0'..'9',#8])) or (LeftStr(edit1.text,1)='0') then
begin
key:=#8;
showmessage('请输入大于零的整数');
end;
end;
但是不知道为什么输入单独一个0的时候没有效果...
要求不允许为0. 展开
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (not (key in ['0'..'9',#8])) or (strtoint(LeftStr(trim(edit1.text),1))<>0) then
key:=#8;
showmessage('请输入大于零的整数');
exit;
end;
谢谢大家的帮助
上面的代码有错误,现改成如下:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (not (key in ['0'..'9',#8])) or (LeftStr(edit1.text,1)='0') then
begin
key:=#8;
showmessage('请输入大于零的整数');
end;
end;
但是不知道为什么输入单独一个0的时候没有效果...
要求不允许为0. 展开
3个回答
展开全部
语法上的毛病:
估计StrUtils 这个你没use
你少begin end来限制判断范围,最后那个exit没必要
逻辑上的毛病:
(strtoint(LeftStr(trim(edit1.text),1))<>0)运行的时候你一输入肯定报错,因为那时候edit1的内容还是空,你转整型就肯定报错
建议你这样做:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then
key:=#13;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
try
if strtoint(trim(edit1.Text))<=0 then
showmessage('请输入大于零的整数');
except
showmessage('请输入正确的数字形式');
end;
end;
判断是不是大于0的整数放到EDIT退出的时候做
估计StrUtils 这个你没use
你少begin end来限制判断范围,最后那个exit没必要
逻辑上的毛病:
(strtoint(LeftStr(trim(edit1.text),1))<>0)运行的时候你一输入肯定报错,因为那时候edit1的内容还是空,你转整型就肯定报错
建议你这样做:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9',#8]) then
key:=#13;
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
try
if strtoint(trim(edit1.Text))<=0 then
showmessage('请输入大于零的整数');
except
showmessage('请输入正确的数字形式');
end;
end;
判断是不是大于0的整数放到EDIT退出的时候做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为什么要这么复杂,为何不用掩码来控制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询