2015年12月11日金曜日

TRect のお話

Lazarus や Delphi では矩形領域を現す TRect という便利な型とそれを操作するための便利な関数群が用意されています。
TRect は、上下左右の座標で定義されますが、標準では、下と右は+1してあげる必要があります。例えば、画面上の左上隅の1ドットを TRect で現すと Left = 0, Top = 0, Right = 1, Bottom = 1 となります。 もちろん、自己のプログラムの中で1ドットの矩形は Left = Right, Top = Bottom とするんだ!とすることは自由なわけですが、少なくとも Lazarus や Delphi の標準ルーチンはそのように処理しません。例えば 、矩形が空かどうかを調べる IsRectEmpty 関数は次のようになっています。

function IsRectEmpty(const Rect : TRect) : Boolean;
begin
  IsRectEmpty:=(Rect.Right<=Rect.Left) or (Rect.Bottom<=Rect.Top);
end;

左右あるいは上下の座標が同じなら空と判定してますね。

0 件のコメント:

コメントを投稿