* Forgot CenterAt

This commit is contained in:
Michaël Van Canneyt 2023-10-15 22:23:00 +02:00
parent f73456a9d9
commit bc00d5ae06

View File

@ -474,9 +474,12 @@ function Point(x,y : Integer) : TPoint; inline;
function PointF(x,y: Single) : TPointF; inline;
function PtInRect(const Rect : TRect; const p : TPoint) : Boolean;
function IntersectRect(var Rect : TRect; const R1,R2 : TRect) : Boolean;
function RectCenter(var R: TRect; const Bounds: TRect): TRect;
function RectCenter(var R: TRectF; const Bounds: TRectF): TRectF;
function UnionRect(var Rect : TRect; const R1,R2 : TRect) : Boolean;
function IsRectEmpty(const Rect : TRect) : Boolean;
function OffsetRect(var Rect : TRect;DX : Integer;DY : Integer) : Boolean;
function OffsetRect(var Rect : TRectF;DX : Single;DY : Single) : Boolean;
function CenterPoint(const Rect: TRect): TPoint;
function InflateRect(var Rect: TRect; dx: Integer; dy: Integer): Boolean;
function Size(AWidth, AHeight: Integer): TSize; inline;
@ -584,6 +587,32 @@ begin
FillChar(Rect,SizeOf(Rect),0);
end;
function RectCenter(var R: TRect; const Bounds: TRect): TRect;
var
C : TPoint;
CS : TPoint;
begin
C:=Bounds.CenterPoint;
CS:=R.CenterPoint;
OffsetRect(R,C.X-CS.X,C.Y-CS.Y);
Result:=R;
end;
function RectCenter(var R: TRectF; const Bounds: TRectF): TRectF;
Var
C,CS : TPointF;
begin
C:=Bounds.CenterPoint;
CS:=R.CenterPoint;
OffsetRect(R,C.X-CS.X,C.Y-CS.Y);
Result:=R;
end;
function UnionRect(var Rect : TRect;const R1,R2 : TRect) : Boolean;
var
lRect: TRect;
@ -631,6 +660,19 @@ begin
Result := b + ((a - b) shr 1);
end;
function OffsetRect(var Rect: TRectF; DX: Single; DY: Single): Boolean;
begin
Result:=assigned(@Rect);
if Result then
with Rect do
begin
Left:=Left+dx;
Right:=Right+dx;
Top:=Top+dy;
Bottom:=Bottom+dy;
end;
end;
function CenterPoint(const Rect: TRect): TPoint;
begin
with Rect do
@ -1133,7 +1175,8 @@ end;
function TRectF.CenterAt(const Dest: TRectF): TRectF;
begin
Result:=Self;
RectCenter(Result,Dest);
end;
function TRectF.Fit(const Dest: TRectF): Single;