こんにちは、私は Delphi の初心者です。しかし、私を混乱させるのは、Edit1.Text と、StrToInt(Edit1.Text); を使用する変数 "i" があることです。マイナス記号を入力するまではすべて問題ありません
マイナスを数値(-2など)でコピー/貼り付けすると機能します 誰でも助けてくれますか!よろしく、 ウマル
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;
-
は整数ではないため、明らかにエラーが発生します。代わりにTryStrToIntを使用できます。