TRectの便利関数

どのバージョンからか把握していないが、TRectにはいろいろな関数(やコンストラクタ)が実装されている。
Vclの一昔前のサンプルだと、こうした関数を使わない(ちょっと面倒くさい)処理が紹介されていたりする。
というか自分自身も昔の名残で、ついだらだらとコードを書きがちだったり。

Helpの一覧だと、実装が書いてあるだけで(RadStudio10.2 Tokypリリース直後時点)、まあ読めば分かるといえばそうなのだが、忘れがちなので一覧にしてみた。

System配下なので、Vcl・FireMonkey共通。(Delphiでも同じように使えるはず。)
以下、RはTRect、PtはTPointの変数。

動作 実例
PointからRectを作成 R = TRect(Pt1,Pt2)
Rectの値を正しくする R.Normalize()
位置をずらす R.Offset(X,Y)
R.Offset(Pt)
Rectの始点を指定する R.SetLocation(X,Y)
R.SetLocation(Pt)
Rectの始点を得る Pt = R.GetLocation()
Rectに点が含まれるか bool b = R.Intersects(Pt)
他のRectと重なっているか bool b = R1.Overlaps(R2)
他のRectを完全に含むか bool b = R1.Contains(R2)
全方向に大きく(小さく)する R.Inflate(X,Y)
R.Inflate(l,t,r,b)
中心点を得る Pt = R.CenterPoint()

FireMonkeyのイベント等で使われるTRectF/TPointFでもおおむね同様の関数が使える。(一部名前が違ったりするようだが、精査していない)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です