anchor.diff:      procedure   HandleKeyChar(var AText: TfpgChar; var shiftstate: TShiftState; var consumed: boolean); override;
       procedure   HandleKeyPress(var keycode: word; var shiftstate: TShiftState; var consumed: boolean); override;
       procedure   HandleLMouseDown(x, y: integer; shiftstate: TShiftState); override;
  +    procedure   HandleRMouseUp(x, y: integer; shiftstate: TShiftState); override;
       procedure   HandleMouseMove(x, y: integer; btnstate: word; shiftstate: TShiftState); override;
       procedure   HandleResize(dwidth, dheight: integer); override;
       procedure   HandleMouseScroll(x, y: integer; shiftstate: TShiftState; delta: smallint); override;
  
positive.code:     FHScrollBar: TfpgScrollBar;
      FWrapping: boolean;
      FLongestLineWidth: TfpgCoord;
      function    GetFontDesc: string;
      procedure   SetFontDesc(const AValue: string);
      procedure   RecalcLongestLine;
  
negative.code:   Repaint;
  end;
  
  procedure TfpgMemo.HandleRMouseUp(x, y: integer; shiftstate: TShiftState);
  begin
    inherited HandleRMouseUp(x, y, shiftstate);
    if Assigned(PopupMenu) then
      PopupMenu.ShowAt(self, x, y);
  end;
  
  procedure TfpgMemo.HandleMouseMove(x, y: integer; btnstate: word; shiftstate: TShiftState);
  var
    n: integer;
  