anchor.diff:      property    MaxLength: Integer read FMaxLength write FMaxLength;
       property    PasswordMode: Boolean read FPasswordMode write SetPasswordMode default False;
       property    PopupMenu: TfpgPopupMenu read FPopupMenu write FPopupMenu;
  +    property    ReadOnly: Boolean read FReadOnly write SetReadOnly default False;
       property    Text: String read FText write SetText;
       property    OnChange: TNotifyEvent read FOnChange write FOnChange;
     public
  
positive.code:     FOnChange: TNotifyEvent;
      FMaxLength: integer;
      FSelecting: Boolean;
      procedure   Adjust(UsePxCursorPos: boolean = false); virtual;
      procedure   AdjustTextOffset(UsePxCursorPos: boolean); virtual;
      procedure   AdjustDrawingInfo; virtual;
  
negative.code:         itm.Enabled := Text <> '';
      end;
    end;
  end;
  
  procedure TfpgBaseEdit.SetReadOnly(const AValue: Boolean);
  begin
    if FReadOnly = AValue then exit;
    FReadOnly := AValue;
  end;
  
  function TfpgBaseEdit.GetMarginAdjustment: integer;
  