anchor.diff:  begin
     Result := Width;
     //if FBorderStyle <> bsNone then
  -  //  dec( Result, 4 );
  +  dec( Result, 4 ); // borders of component
     dec( Result, FScrollBarWidth ); // always allow space for vscrollbar
   end;
   
  
positive.code:     procedure HandleHide; override;
      procedure HandleKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean); override;
      procedure HandleRMouseUp(x, y: integer; shiftstate: TShiftState); override;
  
      //procedure ScanEvent( Var KeyCode: TKeyCode;
      //                     RepeatCount: Byte ); override;
  
negative.code:   MaxDisplayWidth: longint;
    AvailableHeight: longint;
  Begin
    // Calculate used and available width
    AvailableWidth := GetTextAreaWidth;
    MaxDisplayWidth := FLayout.Width; // div FontWidthPrecisionFactor;
  
    // Defaults
    FNeedVScroll := false;
    FNeedHScroll := false;
  
    // Horizontal scroll setup
    if MaxDisplayWidth > AvailableWidth then
      FNeedHScroll := true;
  
  //  FHScrollbar.SliderSize := AvailableWidth div 2;
    FHScrollbar.Min := 0;
    if FNeedHScroll then
      FHScrollbar.Max := MaxDisplayWidth
    else
    begin
      FHScrollBar.Position := 0;
  