Delphi编辑文本整数:减号错误

Delphi编辑文本整数:减号错误,delphi,sign,Delphi,Sign,嗨,我是Delphi的初学者。 但让我困惑的是我有Edit1.Text 变量“i”使用stroint(Edit1.Text); 在我输入减号之前一切都正常 如果我用数字(如-2)复制/粘贴负号,它会工作 谁能帮帮我! 在这方面,Umar您显然会得到一个错误,因为-不是整数。您可以改用TryStrToInt。当您不能100%确定输入字符串是否可以转换为整数值时,使用转换函数是不安全的。而编辑框就是这样一种不安全的情况。转换失败,因为您输入了无法转换为整数的-符号作为第一个字符。清除编辑框时,同样的

嗨,我是Delphi的初学者。 但让我困惑的是我有Edit1.Text 变量“i”使用stroint(Edit1.Text); 在我输入减号之前一切都正常

如果我用数字(如-2)复制/粘贴负号,它会工作 谁能帮帮我!
在这方面,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哦。这只是一个临时职位。现在我需要想出一些代码的文字。你可以看到我删除的那个,对吗?如果有什么对你有用的,请随便用。