anchor.diff:      procedure Add(const aText, aHint: String; aEnabled: Boolean = True); overload;
       procedure Clear;
       property Count: Integer read fCount;
  +    property IsSelected: Boolean read GetIsSelected;
       property VisibleCount: Integer read GetVisibleCount;
       property ItemIndex: Integer read fItemIndex write fItemIndex;
       property OnChange: TNotifyEvent read fOnChange write fOnChange;
       property Item[aIndex: Integer]: TKMRadioGroupItem read GetItem;
  -    procedure SetItemEnabled(aIndex: Integer; aEnabled: Boolean);
  +    procedure SetItemEnabled(aIndex: Integer; aEnabled: Boolean; aUncheckDisabled: Boolean = True);
       procedure SetItemVisible(aIndex: Integer; aEnabled: Boolean);
  +    procedure CheckFirstCheckable;
       property LineHeight: Single read GetLineHeight;
       procedure MouseUp(X,Y: Integer; Shift: TShiftState; Button: TMouseButton); override;
       procedure MouseMove(X,Y: Integer; Shift: TShiftState); override;
  
positive.code:     function GetItemIndexByRow(aRowIndex: Integer): Integer;
      function GetVisibleCount: Integer;
      function GetLineHeight: Single;
    protected
      function GetHint: UnicodeString; override;
    public
  
negative.code: end;
  
  
  function TKMDropList.HasTag(aTag: Integer): Boolean;
  var
    I: Integer;
  begin
    Result := False;
    for I := 0 to fList.Count - 1 do
      if fList.ItemTags[I] = aTag then
        Exit(True);
  end;
  
  
  function TKMDropList.IsSelected: Boolean;
  begin
    Result := fList.ItemIndex <> -1;
  