掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
数値の期間重複判定について (ID:149593)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
前回の回答は勘違いしていました。 申し訳ありません(汗 数値 1~100 と 50~150 と 80~200の重複判定なのだとしたら、 下記の方法でも行えます。 uses System.Types; procedure TForm1.Button1Click( Sender : TObject ); var CheckRes : Boolean; begin CheckRes := CheckDup( 1, 100, 50, 150 ) and CheckDup( 1, 100, 80, 200 ) and CheckDup( 50, 150, 80, 200 ); Button1.Text := CheckRes.ToString( TUseBoolStrs.True ); end; function TForm1.CheckDup( const A1, A2, B1, B2 : Integer ) : Boolean; begin Result := IntersectRect( Rect( A1, 0, A2, 5 ), Rect( B1, 0, B2, 5 ) ); end; System.Types の IntersectRect() を利用しています。 元々、矩形の衝突判定する物で、 利用する側で扱いやすくする為、わざわざ関数化しています。 実数である場合は、IntersectRectF() という物もあります。 最後の .ToString( TUseBoolStrs.True ) は、 Boolean型を文字列に変換する構文です。 また勘違いしておりましたらすみません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.