5

こんにちは、私は Delphi の初心者です。しかし、私を混乱させるのは、Edit1.Text と、StrToInt(Edit1.Text); を使用する変数 "i" があることです。マイナス記号を入力するまではすべて問題ありません

マイナスを数値(-2など)でコピー/貼り付けすると機能します 誰でも助けてくれますか!よろしく、 ウマル

4

2 に答える 2

7

StrToInt入力文字列を整数値に変換できるかどうかが100%確実でない場合、変換関数を使用するのは安全ではありません。そして、編集ボックスはそのような危険なケースです。-整数に変換できない記号を最初の文字として入力したため、変換に失敗しました。編集ボックスをクリアしたときにも同じことが起こります。この変換を安全にするために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;
于 2012-08-11T23:10:28.520 に答える
2

-は整数ではないため、明らかにエラーが発生します。代わりにTryStrToIntを使用できます。

于 2012-08-11T22:25:51.040 に答える