How to Use the _MEMVARMASK Variable

Last reviewed: April 29, 1996
Article ID: Q102465
The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, version 3.0
  • Microsoft FoxPro for Windows, versions 2.5x, 2.6, 2.6a

SUMMARY

_MEMVARMASK is a variable used in FoxPro for Windows versions 2.5a and later to make menus work properly with the GraphWizard and spelling checker.

Because of the underscore in the variable name, many people assume it is a system memory variable and would be displayed on the screen if the following commands were issued:

   CLEAR MEMORY
   DISPLAY MEMORY

MORE INFORMATION

The following text from the 2.5a README.TXT file illustrates the use of _MEMVARMASK:

Part 4: _MEMVARMASK

Menus you created in FoxPro 2.5 that included expressions may not have behaved properly when the spelling checker or GraphWizard were active.

SKIP FOR expressions typically depend on the value of skip variables, but the skip variables were not visible to your menus when the spelling checker or GraphWizard was active in FoxPro 2.5. In the initialization code of the spelling checker and GraphWizard applications (SPELLCHK.APP and GENGRAPH.APP respectively), PRIVATE ALL is intentionally issued. This hides skip variables from user-defined menus and causes a "Variable not found" error when you make a menu choice.

To correct this situation, the following code is added to the beginning of the spelling checker and GraphWizard applications:

   IF TYPE("_memvarmask") = "C" and !EMPTY(_memvarmask)
      PRIVATE ALL EXCEPT &_memvarmask
   ELSE
      PRIVATE ALL
   ENDIF

Suppose a certain menu option should be skipped when the memory variable named "skipvar" evaluates to true. You should include the following lines in your menu startup code to take advantage of the _MEMVARMASK variable:

   PUBLIC _memvarmask
   _memvarmask = "skipvar"
   STORE .T. TO skipvar             && Skip initially.

To create a set of skip variables, include the following lines in your menu startup code:

   PUBLIC _memvarmask
   _memvarmask = "skip*"
   STORE .T. TO skipthis, skipthat  && Skip initially.

When you execute the spelling checker and GraphWizard, they don't hide variables in SKIP FOR expressions, preventing the "Variable not found" errors you may have experienced in FoxPro 2.5.

Note that _MEMVARMASK isn't a system memory variable.

REFERENCES

Microsoft FoxPro 2.5a for Windows README.TXT file


Additional reference words: VFoxWin 3.00 FoxWin 2.50a 2.50b 2.60 2.60a
KBCategory: kbreadme kbprg
KBSubcategory: FxtoolGeneral


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: April 29, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.