anchor.diff:  { Recursing function to find topmost control (excl. Panels)}
   function TKMMasterControl.HitControl(X,Y: Integer; aIncludeDisabled: Boolean=false): TKMControl;
     function ScanChild(P: TKMPanel; aX,aY: Integer): TKMControl;
  -  var i: Integer;
  +  var I: Integer;
     begin
       Result := nil;
  -    for i:=P.ChildCount downto 1 do
  -    if P.Childs[i].fVisible then //ignore invisible controls
  -      if (P.Childs[i] is TKMPanel) then begin
  -        Result := ScanChild(TKMPanel(P.Childs[i]),aX,aY);
  +    //Process controls in reverse order since last created are on top
  +    for I := P.ChildCount downto 1 do
  +    if P.Childs[I].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 (P.Childs[I] is TKMPanel) then
  +      begin
  +        Result := ScanChild(TKMPanel(P.Childs[I]),aX,aY);
           if Result <> nil then exit;
  -      end else
  -      if P.Childs[i].HitTest(aX,aY,aIncludeDisabled) then begin
  -        Result := P.Childs[i];
  -        exit;
         end;
  +      if P.Childs[I].HitTest(aX, aY, aIncludeDisabled) then
  +      begin
  +        Result := P.Childs[I];
  +        Exit;
  +      end;
  +    end;
     end;
   begin
     Result := ScanChild(fCtrl, X, Y);
  
positive.code:     sa_Vertical:   fThumbSize := Math.max(0, (Height-2*Width)) div 4;
      sa_Horizontal: fThumbSize := Math.max(0, (Width-2*Height)) div 4;
    end;
  end;
  
  
  
negative.code:     procedure UpdateThumbPos;
      procedure UpdateThumbSize;
    protected
      procedure SetHeight(aValue: Integer); override;
      procedure SetWidth(aValue: Integer); override;
      procedure SetEnabled(aValue: Boolean); override;
    public
      BackAlpha: Single; //Alpha of background (usually 0.5, dropbox 1)
      EdgeAlpha: Single; //Alpha of background outline (usually 1)
  