====== TRect, TPoint etc... ======
===== TRect =====
==== Création ====
pour créer un TRect :
// Avec les données Left, Top, Right, Bottom
Rect:=Classes.Rect(ALeft, ATop, ARight, ABottom); //Retourne un TRect (unit Classes)
// Avec les données Left, Top, Width, Height
Rect:=Bounds(ALeft, ATop, AWidth, AHeight); //Retourne un TRect (unit Classes)
==== Utilitaires ====
// Savoir si RectA contient RectB (c'est a dire RectA entoure/englobe RectB)
Bool := RectA.Contains(RectB);
// Savoir si RectA chevauche ou contient RectB (c'est a dire une partie RectA se trouve sur RectB)
Bool := RectA.IntersectsWith(RectB);
==== Membres de TRect ====
TRect = packed record
public
constructor Create(Origin: TPoint); // empty rect at given origin
constructor Create(Origin: TPoint; AWidth, AHeight: Longint);
constructor Create(ALeft, ATop, ARight, ABottom: Longint);
constructor Create(P1, P2: TPoint; Normalize: Boolean = False);
constructor Create(R: TRect; Normalize: Boolean = False);
class operator = (L, R: TRect): Boolean;
class operator <> (L, R: TRect): Boolean;
class operator + (L, R: TRect): TRect; // union
class operator * (L, R: TRect): TRect; // intersection
class function Empty: TRect; static;
procedure NormalizeRect;
function IsEmpty: Boolean;
function Contains(Pt: TPoint): Boolean;
function Contains(R: TRect): Boolean;
function IntersectsWith(R: TRect): Boolean;
class function Intersect(R1: TRect; R2: TRect): TRect; static;
procedure Intersect(R: TRect);
class function Union(R1, R2: TRect): TRect; static;
procedure Union(R: TRect);
class function Union(const Points: array of TPoint): TRect; static;
procedure Offset(DX, DY: Longint);
procedure Offset(DP: TPoint);
procedure SetLocation(X, Y: Longint);
procedure SetLocation(P: TPoint);
procedure Inflate(DX, DY: Longint);
procedure Inflate(DL, DT, DR, DB: Longint);
function CenterPoint: TPoint;
function SplitRect(SplitType: TSplitRectType; ASize: Longint): TRect;
function SplitRect(SplitType: TSplitRectType; Percent: Double): TRect;
public
property Height: Longint read getHeight write setHeight;
property Width : Longint read getWidth write setWidth;
property Size : TSize read getSize write setSize;
property Location : TPoint read getLocation write setLocation;
case Longint of
0: (Left,Top,Right,Bottom : Longint);
1: (TopLeft,BottomRight : TPoint);
2: (Vector:TArray4IntegerType);
end;