SpinEditのEcovertErrorの回避方法

解決


スパムちゃんPanther  2010-09-18 20:37:24  No: 39191

SpinEdit1の値を手動で変える時、OnChangeイベントでは、一瞬でも空白になると、''はInteger型じゃない!と、EcovertErrorが起きますよね?

コレを、回避したいのですが・・・、tryでも

try
  iValue := SpinEdit1.Value;
except
  iValue := 100;
end;

って、してもダメみたいで。

開発環境で、エラー処理を出さないようにすればいい!という書き込みもあったんですが、なんか、納得できません。

うまい解決法はないですか?


美味しいかな?  2010-09-18 22:02:32  No: 39192

デバッグ環境も含めてエラーを出したくなかったら、
ソースのsamplesフォルダからspin.pasをコピーして以下を書き換え。

function TSpinEdit.GetValue: LongInt;
begin
  try
//  Result := StrToInt (Text);               // この部分を
    Result := StrToIntDef(Text, FMinValue);  // 書き換える
  except
    Result := FMinValue;
  end;
end;


スパムちゃんPanther  2010-09-19 01:04:10  No: 39193

あ、元を変えちゃう!
確かに、なるほど!ですし、考えれば、私にもできた方法でした。
これからは、元も疑って見てみます。

でも、こういう方法が、一番最初にあがるって事は、コンパイル後のソフトでのSpinEdit1の空白のEcovertErrorは、まぁ、それなりに動くし、エラー表示はでないから、それでいいよ!ってスタンスなんでしょうか?^^;

コンパイルした物はでませんもんね。

少し補足
>エラー処理を出さないようにすればいい!
ってのは、開発環境側で、そのエラーチェックを外すって、方法で。
私は乱暴だなー、と思ったのですが。

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加