anchor.diff:  
   procedure TKMRadioGroup.Add(aText: UnicodeString; aEnabled: Boolean);
   begin
  +  Add(aText, '', aEnabled);
  +end;
  +
  +
  +procedure TKMRadioGroup.Add(aText, aHint: UnicodeString; aEnabled: Boolean = True);
  +begin
     if fCount >= Length(fItems) then
       SetLength(fItems, fCount + 8);
   
     fItems[fCount].Text := aText;
  +  fItems[fCount].Hint := aHint;
     fItems[fCount].Enabled := aEnabled;
   
     Inc(fCount);
  
positive.code:   end;
  
    inherited; //There are OnMouseUp and OnClick events there
  end;
  
  
  
negative.code:   end;
  
  
    TKMRadioGroupItem = record
      Text: UnicodeString;
      Hint: UnicodeString;
      Enabled: Boolean;
    end;
  
  
    { TKMRadioGroup }
    TKMRadioGroup = class(TKMControl)
    private
      fItemIndex: Integer;
      fCount: Integer;
      fItems: array of TKMRadioGroupItem;
      fFont: TKMFont;
      fMouseOverItem: SmallInt;
      fOnChange: TNotifyEvent;
      procedure UpdateMouseOverPositions(X,Y: Integer);
      function GetItem(aIndex: Integer): TKMRadioGroupItem;
    protected
      function GetHint: UnicodeString; override;
    public
      DrawChkboxOutline: Boolean;
      LineColor: TColor4; //color of outline
      LineWidth: Byte;
      constructor Create(aParent: TKMPanel; aLeft, aTop, aWidth, aHeight: Integer; aFont: TKMFont);
  
      procedure Add(aText: UnicodeString; aEnabled: Boolean = True); overload;
      procedure Add(aText, aHint: UnicodeString; aEnabled: Boolean = True); overload;
      procedure Clear;
      property Count: Integer read fCount;
      property ItemIndex: Integer read fItemIndex write fItemIndex;
      property OnChange: TNotifyEvent read fOnChange write fOnChange;
      property Item[aIndex: Integer]: TKMRadioGroupItem read GetItem;
      procedure MouseUp(X,Y: Integer; Shift: TShiftState; Button: TMouseButton); override;
      procedure MouseMove(X,Y: Integer; Shift: TShiftState); override;
      procedure Paint; override;
    end;
  
  