mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 08:59:26 +02:00
* Forgot CenterAt
This commit is contained in:
parent
f73456a9d9
commit
bc00d5ae06
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user