Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
prog:lazarus:classes:trect [20/07/2024 12:14] thierry créée |
prog:lazarus:classes:trect [20/07/2024 12:26] (Version actuelle) thierry [Membres de TRect] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== TRect, TPoint etc... ====== | ====== TRect, TPoint etc... ====== | ||
===== TRect ===== | ===== TRect ===== | ||
+ | ==== Création ==== | ||
+ | |||
pour créer un TRect : | pour créer un TRect : | ||
<code delphi> | <code delphi> | ||
+ | // 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) | ||
+ | |||
</code> | </code> | ||
+ | ==== Utilitaires ==== | ||
+ | <code delphi> | ||
+ | // 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); | ||
+ | </code> | ||
+ | ==== Membres de TRect ==== | ||
+ | <code delphi> | ||
+ | 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; | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | |||