Doug

Thanks, learned something new today

Marc

  ----- Original Message ----- 
  From: Doug Hamilton 
  To: RBASE-L Mailing List 
  Sent: Wednesday, February 18, 2009 3:20 PM
  Subject: [RBASE-L] - Re: Forms remember screen locations


  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