anchor.diff:      procedure   SetThousandSeparator(const AValue: TfpgChar);
       procedure   SetShowThousand;
     protected
  +    function    GetMarginAdjustment: integer; override;
       procedure   HandlePaint; override;
       procedure   FormatEdit; virtual;
       procedure   Justify; virtual; // to implement in derived classes
  
positive.code:   end;
  
  
    TfpgEdit = class(TfpgBaseEdit)
    public
      property    PopupMenu;  // UI Designer doesn't fully support it yet
    published
  
negative.code:   FHideSelection := AValue;
  end;
  
  // paint selection rectangle
  procedure TfpgBaseEdit.DrawSelection;
  var
    lcolor: TfpgColor;
    rs: TfpgRect;
    r: TfpgRect;
  begin
    r := Canvas.GetClipRect;  // contains adjusted size based on borders
  
    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 + GetMarginAdjustment, r.Top + FHeightMargin, FVisibleText, Enabled);
    Canvas.ClearClipRect;
  end;
  
  procedure TfpgBaseEdit.HandlePaint;
  var
    r: TfpgRect;
  begin
    Canvas.ClearClipRect;
    r.SetRect(0, 0, Width, Height);
  