anchor.diff:        ALineIndex: Integer; ACanvas: TfpgCanvas; ATextRect: TfpgRect;
         var AllowSelfDraw: Boolean) of object;
   
  +  TfpgFindText = procedure(Sender: TObject; FindPos: TPoint; var ScrollToWord: Boolean) of object;
  +
  +  TfpgReplaceText = procedure(Sender: TObject; FindPos: TPoint; var ScrollToWord, ReplaceText: Boolean) of object;
  +
  +  TfpgOnSearchEnd = procedure(Sender: TObject; FindIt, ReplaceMode: Boolean) of object;
  +
   
     TfpgBaseTextEdit = class(TfpgWidget)
     private
  
positive.code: function TfpgBaseTextEdit.mousewheelacceleration(const avalue: integer): integer;
  begin
    result:= round(mousewheelacceleration(avalue*1.0));
  end;
  
  procedure TfpgBaseTextEdit.HandleMouseScroll(x, y: integer; shiftstate: TShiftState;
  
negative.code: type
    // forward declaration
    TfpgBaseTextEdit = class;
  
    TfpgFindOptions = set of (foMatchCase, foWholeWords, foEntireScope);
  
    TfpgGutter = class(TfpgWidget)
    private
  