どのバージョンからか把握していないが、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でもおおむね同様の関数が使える。(一部名前が違ったりするようだが、精査していない)