0

2 つのラベル付き編集ボックスがあります。1 つは最小値 (lbleRangeCalcMin) 用で、もう 1 つは最大値 (lbleRangeCalcMax) 用です。ユーザーが最大値にゼロを入力しないようにし、最小値が最大値よりも小さいことを確認したい (値の範囲が必要: 最大 - 最小)。

エラーが発生したらすぐにキャッチしたい(たとえば、ユーザーが最大値にゼロを入力するとすぐに)。また、ユーザーがゼロを入力した場合に、ユーザーが最大値から離れることを望んでいません。そこで、OnChange と OnExit の 2 つのイベントで例外呼び出しをプログラムしました。

ユーザーが入力したゼロの代わりに別の値を再入力しようとした場合を除いて、正常に機能します。次に、「'' は浮動小数点値ではありません。

この例外を発生させずに、ユーザーがエントリを修正できるようにするにはどうすればよいですか? これが私のコードです。ありがとう。

procedure TfrmAnalysisOptions.lbleRangeCalcMaxChange(Sender: TObject);
begin
  if ((StrToFloat((lbleRangeCalcMax.Text) = 0) or
      (StrToFloat((lbleRangeCalcMax.Text) <
        StrToFloat((lbleRangeCalcMin.Text))) then
     MessageDlg('Max value cannot be zero or less than Min value.', mtError,
        [mbOK], 0);
end;



procedure TfrmAnalysisOptions.lbleRangeCalcMaxExit(Sender: TObject);
begin
  if ((StrToFloat(lbleRangeCalcMax.Text) = 0) or
      (StrToFloat(lbleRangeCalcMax.Text) <
        StrToFloat(lbleRangeCalcMin.Text))) then
     MessageDlg('Max value cannot be zero or less than Min value.', mtError,
        [mbOK], 0);
end; 
4

1 に答える 1