Marc - I put buttons on the caption bar.  A "Save" button stores the left, top, width and height values in a UserParams table.
3 cols in the table UserParams:
ParamUserID TEXT 16
UserParamName TEXT 24
UserParamValue TEXT 64 (that might be a little long for form coordinates, but I store other stuff in that col too, e.g. emails addrs)

Each user can store their own size & locations

EEP for "Save" caption button:

SET VAR vTempText TEXT = NULL

GETPROPERTY RBASE_FORM LEFT 'gMainMenuLeft'
UPDATE UserParams SET UserParamValue = .gMainMenuLeft +
  WHERE ParamUserID = .gUserID AND +
  UserParamName = 'gMainMenuLeft'
IF SQLCODE <> 0 THEN
    INSERT INTO +
      UserParams (ParamUserID,UserParamName,UserParamValue) +
      VALUES (.gUserID,'gMainMenuLeft',.gMainMenuLeft)
ENDIF

GETPROPERTY RBASE_FORM TOP 'gMainMenuTop'
UPDATE UserParams SET UserParamValue = .gMainMenuTop +
  WHERE ParamUserID = .gUserID AND +
  UserParamName = 'gMainMenuTop'
IF SQLCODE <> 0 THEN
    INSERT INTO +
      UserParams (ParamUserID,UserParamName,UserParamValue) +
      VALUES (.gUserID,'gMainMenuTop',.gMainMenuTop)
ENDIF

GETPROPERTY RBASE_FORM WIDTH 'gMainMenuWidth'
UPDATE UserParams SET UserParamValue = .gMainMenuWidth +
  WHERE ParamUserID = .gUserID AND +
  UserParamName = 'gMainMenuWidth'
IF SQLCODE <> 0 THEN
    INSERT INTO +
      UserParams (ParamUserID,UserParamName,UserParamValue) +
      VALUES (.gUserID,'gMainMenuWidth',.gMainMenuWidth)
ENDIF

GETPROPERTY RBASE_FORM HEIGHT 'gMainMenuHeight'
UPDATE UserParams SET UserParamValue = .gMainMenuHeight +
  WHERE ParamUserID = .gUserID AND +
  UserParamName = 'gMainMenuHeight'
IF SQLCODE <> 0 THEN
    INSERT INTO +
      UserParams (ParamUserID,UserParamName,UserParamValue) +
      VALUES (.gUserID,'gMainMenuHeight',.gMainMenuHeight)
ENDIF
RETURN


A "Mine" button restore the screen to the particular user's specs:
SELECT UserParamValue INTO vTempText vI +
  FROM UserParams +
  WHERE ParamUserID = .gUserID AND +
  UserParamName = 'MainMenuWidth'
PROPERTY RBASE_FORM WIDTH .vTempText

SELECT UserParamValue INTO vTempText vI +
  FROM UserParams +
  WHERE ParamUserID = .gUserID AND +
  UserParamName = 'MainMenuHeight'
PROPERTY RBASE_FORM HEIGHT .vTempText

SELECT UserParamValue INTO vTempText vI +
  FROM UserParams +
  WHERE ParamUserID = .gUserID AND +
  UserParamName = 'MainMenuLeft'
PROPERTY RBASE_FORM LEFT .vTempText

SELECT UserParamValue INTO vTempText vI +
  FROM UserParams +
  WHERE ParamUserID = .gUserID AND +
  UserParamName = 'MainMenuTop'
PROPERTY RBASE_FORM TOP .vTempText

I also have a button to minimize the form to just the caption bar:
PROPERTY RBASE_FORM HEIGHT 20
PROPERTY RBASE_FORM AUTOSCROLL 'FALSE'

Use can click the "Mine" button to restore the form to their spec.

Doug

MDRD wrote:
Hi
 
Is there a way for RBase to remember the form size and location
on the screen?
 
Thanks
Marc
 

Reply via email to