thisform.SaveAll(not EditMode,"ReadOnly",'textbox') thisform.SaveAll(EditMode,"Enabled",'commandbutton')Also this property should control, in which mode you're currently in (Save or Edit). At least, this is how it works in our framework (not a best one, I admit).
> DO CASE > CASE ALLTRIM(UPPER(THIS.COMMAND8.CAPTION)) = 'EDIT' > ** this will handle the command buttons > FOR START = 1 TO 9 > THISBUTTON = 'THIS.COMMAND'+ALLTRIM(STR(START))+'.ENABLED' > IF START != 8 > &THISBUTTON = .F. > ELSE > &THISBUTTON = .T. > ENDIF > ENDFOR > **** this is for the textboxes > FOR START = 2 TO 16 > THISBOX = 'THISFORM.RFI_TEXTBOX'+ALLTRIM(STR(START))+'.READONLY' > &THISBOX = .F. > ENDFOR > **** this is for the editboxes > FOR START = 1 TO 3 > THISBOX = 'THISFORM.RFI_EDITBOX'+ALLTRIM(STR(START))+'.READONLY' > &THISBOX = .F. > ENDFOR > THIS.COMMAND8.CAPTION = 'Save' > CASE ALLTRIM(UPPER(THIS.COMMAND8.CAPTION)) = 'SAVE' > lnResult = MESSAGEBOX('Are you sure you want to save',32+4,'Save Changes') > IF lnResult = 6 > DO SAVE_DATA WITH .T. > > ELSE > DO REVERT_DATA WITH .F. > ENDIF > *** change the textboxes back > FOR START = 2 TO 16 > THISBOX = 'THISFORM.RFI_TEXTBOX'+ALLTRIM(STR(START))+'.READONLY' > &THISBOX = .T. > ENDFOR > ******* change the edit boxes back > FOR START = 1 TO 3 > THISBOX = 'THISFORM.RFI_EDITBOX'+ALLTRIM(STR(START))+'.READONLY' > &THISBOX = .T. > ENDFOR > THIS.COMMAND8.CAPTION = 'Edit' > ** this will handle the command buttons > FOR START = 1 TO 9 > THISBUTTON = 'THIS.COMMAND'+ALLTRIM(STR(START))+'.ENABLED' > IF START != 8 > &THISBUTTON = .T. > ELSE > &THISBUTTON = .T. > ENDIF > ENDFOR > ENDCASE >>Thanks in advance