anchor.diff:        itm := TfpgMenuItem(FDefaultPopupMenu.Components[i]);
         // enabled/disable menu items
         if itm.Name = ipmCut then
  -        itm.Enabled := FSelOffset <> 0
  +        itm.Enabled := (not ReadOnly) and (FSelOffset <> 0)
         else if itm.Name = ipmCopy then
           itm.Enabled := FSelOffset <> 0
         else if itm.Name = ipmPaste then
  -        itm.Enabled := fpgClipboard.Text <> ''
  +        itm.Enabled := (not ReadOnly) and (fpgClipboard.Text <> '')
         else if itm.Name = ipmClearAll then
  -        itm.Enabled := Text <> '';
  +        itm.Enabled := (not ReadOnly) and (Text <> '');
       end;
     end;
   end;
  
positive.code: 
  procedure TfpgBaseEdit.DefaultPopupClearAll(Sender: TObject);
  begin
    Clear;
  end;
  
  
negative.code:     FDefaultPopupMenu := TfpgPopupMenu.Create(nil);
      itm := FDefaultPopupMenu.AddMenuItem(rsCut, '', @DefaultPopupCut);
      itm.Name := ipmCut;
      itm := FDefaultPopupMenu.AddMenuItem(rsCopy, '', @DefaultPopupCopy);
      itm.Name := ipmCopy;
      itm := FDefaultPopupMenu.AddMenuItem(rsPaste, '', @DefaultPopupPaste);
      itm.Name := ipmPaste;
      itm := FDefaultPopupMenu.AddMenuItem(rsDelete, '', @DefaultPopupClearAll);
      itm.Name := ipmClearAll;
    end;
  
    SetDefaultPopupMenuItemsState;
  