|
@@ -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;
|