anchor.diff:    TScrollNotifyEvent = procedure(Sender: TObject; position: integer) of object;
   
     TfpgScrollStyle = (ssNone, ssHorizontal, ssVertical, ssAutoBoth);
  +  
  +  TfpgScrollBarPart = (sbpNone, sbpUpBack, sbpPageUpBack, sbpSlider, sbpDownForward, sbpPageDownForward);
   
     TfpgScrollBar = class(TfpgWidget)
     private
       FLargeChange: Integer;
  -    PrevAreaPressed: Boolean;
  -    NextAreaPressed: Boolean;
  +    FScrollbarDownPart: TfpgScrollBarPart;
       procedure   SetMax(const AValue: integer);
       procedure   SetMin(const AValue: integer);
       procedure   SetPosition(const AValue: integer);
  
positive.code:   SliderSize    := 0.5;
    FOnScroll     := nil;
    FSliderPos    := 0;
    FSliderDragging := False;
    FSliderLength := 10;
    FScrollStep   := 1;
    FLargeChange  := 0;
    
    PrevAreaPressed := False;
    NextAreaPressed := False;
  end;
  
  destructor TfpgScrollBar.Destroy;
  
negative.code:     begin
        // Up button has been pressed
        PositionChange(-FScrollStep);
        FScrollbarDownPart := sbpUpBack;
        FActiveButtonRect.SetRect(0, 0, Width, Width);
      end
      else if y >= Height - Width then
      begin
        // Down button has been pressed
        PositionChange(FScrollStep);
        FScrollbarDownPart := sbpDownForward;
        FActiveButtonRect.SetRect(0,Height-Width, Width, Height);
      end
      else if (y >= (Width + FSliderPos)) and (y <= Width + FSliderPos + FSliderLength) then
      begin
        FScrollbarDownPart := sbpSlider;
        FSliderDragPos  := y;
      end
      else if (y > Width) and (y < (Width + FSliderPos)) then
      begin
        // Clicked between Up button and Slider
        FScrollbarDownPart := sbpPageUpBack;
        PositionChange(-(FScrollStep * 5))
      end
      else if (y < (Height - Width)) and (y > (Width + FSliderPos + FSliderLength)) then
      begin
        // Clicked between Down button and Slider
        FScrollbarDownPart := sbpPageDownForward;
        PositionChange(FScrollStep * 5);
      end;
    end
  