anchor.diff:    end;
   
   
  -  TfpgEdit = class(TfpgBaseEdit)
  +  TfpgBaseTextEdit = class(TfpgBaseEdit)
  +  protected
  +    procedure   HandlePaint; override;
  +  end;
  +
  +
  +  TfpgEdit = class(TfpgBaseTextEdit)
     public
       property    PopupMenu;  // UI Designer doesn't fully support it yet
     published
  
positive.code:   FHideSelection := AValue;
  end;
  
  procedure TfpgBaseEdit.HandlePaint;
  var
    r: TfpgRect;
  
    // paint selection rectangle
    procedure DrawSelection;
    var
      lcolor: TfpgColor;
      rs: TfpgRect;
    begin
      if Focused then
      begin
        lcolor := clSelection;
        Canvas.SetTextColor(clSelectionText);
      end
      else
      begin
        lcolor := clInactiveSel;
        Canvas.SetTextColor(clText1);
      end;
  
      rs.SetRect(FVisSelStartPx, r.Top + FHeightMargin, FVisSelEndPx - FVisSelStartPx, FFont.Height);
      Canvas.SetColor(lcolor);
      Canvas.FillRectangle(rs);
      Canvas.SetTextColor(clWhite);
      Canvas.AddClipRect(rs);
      fpgStyle.DrawString(Canvas, -FDrawOffset + FSideMargin, r.Top + FHeightMargin, FVisibleText, Enabled);
      Canvas.ClearClipRect;
    end;
  
  begin
    Canvas.ClearClipRect;
    r.SetRect(0, 0, Width, Height);
  
negative.code:     FVisibleText: TfpgString;
      FVisSelStartPx: integer;
      FVisSelEndPx: integer;
      function    GetMarginAdjustment: integer; virtual;
      procedure   DrawSelection; virtual;
      procedure   DoOnChange; virtual;
      procedure   ShowDefaultPopupMenu(const x, y: integer; const shiftstate: TShiftState); virtual;
      procedure   HandlePaint; override;
  