anchor.diff:        if Assigned(fOnChange) then
           fOnChange(Self);
       end;
  -  end;
   end;
   
   
  
positive.code:       NewIndex := -1;
      end;
  
      if InRange(NewIndex, 0, fRowCount - 1) and (NewIndex <> fItemIndex) then
      begin
        fItemIndex := NewIndex;
  
negative.code: 
  
  { Recursing function to find topmost control (excl. Panels)}
  function TKMMasterControl.HitControl(X,Y: Integer; aIncludeDisabled: Boolean = False; aMouseUp: Boolean = False): TKMControl;
    function ScanChild(P: TKMPanel; aX,aY: Integer): TKMControl;
    var I: Integer;
        Child: TKMControl;
    begin
      Result := nil;
      //Process controls in reverse order since last created are on top
      for I := P.ChildCount - 1 downto 0 do
      begin
        Child := P.Childs[I];
        if Child.fVisible then //If we can't see it, we can't touch it
        begin
          //Scan Panels childs first, if none is hit - hittest the panel
          if (Child is TKMPanel) then
          begin
            Result := ScanChild(TKMPanel(Child),aX,aY);
            if Result <> nil then exit;
          end;
          if Child.HitTest(aX, aY, aIncludeDisabled) then
          begin
            Result := Child;
            Exit;
          end;
        end;
  
      end;
    end;
  begin
  