anchor.diff:      procedure UpdateItemIndex(Shift: TShiftState);
       function GetItem(aIndex: Integer): TKMListRow;
       function GetSelectedItem: TKMListRow;
  +    function GetSelectedItemTag: Integer;
       procedure ScrollBarChangeVisibility;
     protected
       procedure SetLeft(aValue: Integer); override;
  
positive.code: 
      property Item[aIndex: Integer]: TKMListRow read GetItem; default;
      property SelectedItem: TKMListRow read GetSelectedItem;
      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;
  
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
  