Article ID: 102465
Article Last Modified on 11/17/2003
CLEAR MEMORY
DISPLAY MEMORY
===================
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.
Additional query words: VFoxWin FoxWin 2.50a 2.50b
Keywords: KB102465