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

时间:2012-08-11 22:19:22

标签: delphi sign

嗨,我是Delphi的初学者。 但令我困惑的是我有Edit1.Text 和变量“i”使用StrToInt(Edit1.Text); 一切都好,直到我输入减号

如果我用数字(例如-2)复制/粘贴减号,它就可以了 谁能帮我! 此致,奥马尔

2 个答案:

答案 0 :(得分:6)

当您不能100%确定输入字符串可以转换为整数值时,使用StrToInt转换函数是不安全的。编辑框是一个不安全的情况。您的转换失败,因为您已输入无法转换为整数的-符号作为第一个字符。清除编辑框时也会发生同样的情况。要使此转换安全,您可以使用TryStrToInt函数来处理转换例外。你可以这样使用它:

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;

答案 1 :(得分:2)

显然,您会收到错误,因为-不是整数。您可以改用TryStrToInt。