anchor.diff:  end;
   
   
  +procedure TKMColumnBox.ScrollBarChanged(Sender: TObject);
  +begin
  +  // Reset mouse over field, since we don't want hints to be shown while changing scrollbar f.e.
  +  ResetMouseOver;
  +end;
  +
  +
   function TKMColumnBox.GetOnColumnClick: TIntegerEvent;
   begin
     Result := fHeader.OnColumnClick;
  
positive.code:     function GetColumn(aIndex: Integer): TKMListColumn;
      procedure ClearColumns;
      procedure SetSearchColumn(aValue: ShortInt);
      procedure UpdateMouseOverPosition(X,Y: Integer);
      procedure UpdateItemIndex(Shift: TShiftState; var aOnChangeInvoked: Boolean);
      function GetItem(aIndex: Integer): TKMListRow;
      function GetSelectedItem: TKMListRow;
      function GetSelectedItemTag: Integer;
      procedure ScrollBarChangeVisibility;
    protected
      procedure SetLeft(aValue: Integer); override;
      procedure SetTop(aValue: Integer); override;
  
negative.code: end;
  
  
  procedure TKMColumnBox.ResetMouseOver;
  begin
    fMouseOverColumn := -1;
    fMouseOverRow := -1;
    fMouseOverCell := KMPOINT_INVALID_TILE;
  end;
  
  
  //Update mouse over row/cell positions (fMouseOver* variables)
  procedure TKMColumnBox.UpdateMouseOverPosition(X,Y: Integer);
  var
    I, cellLeftOffset, cellRightOffset: Integer;
  begin
    ResetMouseOver;
  
    if InRange(X, AbsLeft, AbsLeft + Width - fScrollBar.Width * Byte(fScrollBar.Visible))
      and InRange(Y, AbsTop + fHeader.Height*Byte(fHeader.Visible), AbsTop + fHeader.Height*Byte(fHeader.Visible) + Floor(GetVisibleRowsExact * fItemHeight) - 1) then
  