Delphi编辑文本整数:减号错误
嗨,我是Delphi的初学者。 但让我困惑的是我有Edit1.Text 变量“i”使用stroint(Edit1.Text); 在我输入减号之前一切都正常 如果我用数字(如-2)复制/粘贴负号,它会工作 谁能帮帮我!Delphi编辑文本整数:减号错误,delphi,sign,Delphi,Sign,嗨,我是Delphi的初学者。 但让我困惑的是我有Edit1.Text 变量“i”使用stroint(Edit1.Text); 在我输入减号之前一切都正常 如果我用数字(如-2)复制/粘贴负号,它会工作 谁能帮帮我! 在这方面,Umar您显然会得到一个错误,因为-不是整数。您可以改用TryStrToInt。当您不能100%确定输入字符串是否可以转换为整数值时,使用转换函数是不安全的。而编辑框就是这样一种不安全的情况。转换失败,因为您输入了无法转换为整数的-符号作为第一个字符。清除编辑框时,同样的
在这方面,Umar您显然会得到一个错误,因为
-
不是整数。您可以改用TryStrToInt。当您不能100%确定输入字符串是否可以转换为整数值时,使用转换函数是不安全的。而编辑框就是这样一种不安全的情况。转换失败,因为您输入了无法转换为整数的-
符号作为第一个字符。清除编辑框时,同样的情况也会发生在您身上。要使此转换安全,可以使用函数,该函数为您处理转换异常。您可以这样使用它:
procedure TForm1.Edit1Change(Sender: TObject);
var
I: Integer;
begin
// if this function call returns True, the conversion succeeded;
// when False, the input string couldn't be converted to integer
if TryStrToInt(Edit1.Text, I) then
begin
// the conversion succeeded, so you can work
// with the I variable here as you need
I := I + 1;
ShowMessage('Entered value incremented by 1 equals to: ' + IntToStr(I));
end;
end;
但是我刚刚开始打字(eg-7),当然先是你打字,然后是7。但是delphi首先给出错误假设在
OnChange
事件中有strotint
转换代码,它会失败,因为每次编辑框文本更改都会触发OnChange
事件。当您键入-
符号作为第一个字符时,将触发OnChange
事件并执行stroint
转换,该转换失败,因为-
符号不是整数。清除编辑框时也会出现类似错误。正如Rob所建议的,您可以使用该功能。它尝试将作为第一个参数传递的字符串转换为整数,如果成功,则返回True作为结果,整数值返回第二个参数。如果转换失败,则返回False。所以你可以像我在下面的临时帖子中所展示的那样使用它。最后以onExit为例得到了它。谢谢Everyone@Ken哦。这只是一个临时职位。现在我需要想出一些代码的文字。你可以看到我删除的那个,对吗?如果有什么对你有用的,请随便用。