上限下限を設定した型宣言をするには?

解決


午後の紅茶  2005-02-05 14:26:46  No: 13043

タイトルの通りなのですが、上限下限の値を設定した型を宣言をするにはどのようにすればいいのでしょうか?

例えば、-1 〜 255までの整数を代入でき、その範囲外の数字の場合は
EOverflowやEUnderflow等のエラーを投げるようにしたいのですが・・・

整数型ではなくクラスとして作った方がいいのでしょうか?
よろしくお願いします。


午前の緑茶  2005-02-05 20:46:37  No: 13044

var
  aNumber : -1..255;  // 部分範囲型変数
begin
{$R+}
  aNumber := 255;
  Inc(aNumber);
  Edit1.Text := IntToStr(aNumber);
{$R-}

部分範囲型変数を定義しておいて、範囲チェックのオプションを有効にすると、
部分範囲型変数への代入が範囲内にあるかどうか検査され、もし範囲外ならば
ERangeError 例外が生成されます。


午後の紅茶  2005-02-06 02:21:45  No: 13045

こういう方法でやるのですね。
部分範囲でヘルプにも載ってるのに、全く気付きませんでした。

type
  TMyNumber = -1..255;

という方法で型としても定義できることを確認いたしました。
すばやい解答を本当にありがとうございました。


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

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






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