SpinEdit1の値を手動で変える時、OnChangeイベントでは、一瞬でも空白になると、''はInteger型じゃない!と、EcovertErrorが起きますよね?
コレを、回避したいのですが・・・、tryでも
try
iValue := SpinEdit1.Value;
except
iValue := 100;
end;
って、してもダメみたいで。
開発環境で、エラー処理を出さないようにすればいい!という書き込みもあったんですが、なんか、納得できません。
うまい解決法はないですか?
デバッグ環境も含めてエラーを出したくなかったら、
ソースのsamplesフォルダからspin.pasをコピーして以下を書き換え。
function TSpinEdit.GetValue: LongInt;
begin
try
// Result := StrToInt (Text); // この部分を
Result := StrToIntDef(Text, FMinValue); // 書き換える
except
Result := FMinValue;
end;
end;
あ、元を変えちゃう!
確かに、なるほど!ですし、考えれば、私にもできた方法でした。
これからは、元も疑って見てみます。
でも、こういう方法が、一番最初にあがるって事は、コンパイル後のソフトでのSpinEdit1の空白のEcovertErrorは、まぁ、それなりに動くし、エラー表示はでないから、それでいいよ!ってスタンスなんでしょうか?^^;
コンパイルした物はでませんもんね。
少し補足
>エラー処理を出さないようにすればいい!
ってのは、開発環境側で、そのエラーチェックを外すって、方法で。
私は乱暴だなー、と思ったのですが。
ありがとうございました。
ツイート | ![]() |