anchor.diff:  end;
   
   
  +function KMRectWidth(const aRect: TKMRect): Integer;
  +begin
  +  Result := aRect.Right - aRect.Left;
  +end;
  +
  +
  +function KMRectHeight(const aRect: TKMRect): Integer;
  +begin
  +  Result := aRect.Bottom - aRect.Top;
  +end;
  +
  +
   function KMRectGrow(const aRect: TKMRect; aInset: Integer): TKMRect;
   begin
     Result.Left   := Math.Max(aRect.Left   - aInset, 0);
  
positive.code:   function KMRectF(aLeft, aTop, aRight, aBottom: SmallInt): TKMRectF; overload;
    function KMRectRound(const aRect: TKMRectF): TKMRect;
    function KMSameRect(const aRect1, aRect2: TKMRect): Boolean;
    function KMRectGrow(const aRect: TKMRect; aInset: Integer): TKMRect; overload;
    function KMRectGrow(const aRect: TKMRect; const aDir: TKMDirection; aInset: Integer = 1): TKMRect; overload;
    function KMRectGrowTopLeft(const aRect: TKMRect; aInset: Integer = 1): TKMRect;
  
negative.code:   function KMInRect(const aPoint: TKMPoint; const aRect: TKMRect): Boolean; overload;
    function KMInRect(const aPoint: TKMPointF; const aRect: TKMRect): Boolean; overload;
    function KMInRect(const aPoint: TKMPointF; const aRect: TKMRectF): Boolean; overload;
    function KMRectFitInRect(const aInnerRect, aOuterRect: TKMRect): Boolean;
    function KMRectArea(const aRect: TKMRect): Integer;
    function KMRectMove(const aRect: TKMRect; X,Y: Integer): TKMRect;
    procedure KMRectIncludePoint(var aRect: TKMRect; X,Y: Integer); overload;
  