anchor.diff:  
       property Item[aIndex: Integer]: TKMListRow read GetItem; default;
       property SelectedItem: TKMListRow read GetSelectedItem;
  +    property SelectedItemTag: Integer read GetSelectedItemTag;
       procedure SetColumns(aHeaderFont: TKMFont; aCaptions: array of String; aOffsets: array of Word); overload;
       procedure SetColumns(aHeaderFont: TKMFont; aCaptions: array of string; aOffsets: array of Word; aCaptionsAsHints: Boolean); overload;
       procedure SetColumns(aHeaderFont: TKMFont; aCaptions, aHints: array of String; aOffsets: array of Word); overload;
  
positive.code:     procedure UpdateItemIndex(Shift: TShiftState);
      function GetItem(aIndex: Integer): TKMListRow;
      function GetSelectedItem: TKMListRow;
      procedure ScrollBarChangeVisibility;
    protected
      procedure SetLeft(aValue: Integer); override;
  
negative.code: end;
  
  
  function TKMColumnBox.GetSelectedItemTag: Integer;
  begin
    Result := -1;
    if IsSelected then
      Result := GetSelectedItem.Tag;
  end;
  
  
  procedure TKMColumnBox.ScrollBarChangeVisibility;
  begin
    if Visible and (ColumnIdForScroll <> -1) then
  