PRB: #DEFINE in Setup Code Ignored If Only Line of CodeID: Q115056 The information in this article applies to:
SYMPTOMSIf a single #DEFINE preprocessor directive is used in the Setup code of a screen, the constant is never defined and the following error message is generated when the constant is referenced: Variable ["<variable>"] not found. RESOLUTIONTo avoid this problem, add a comment somewhere in the Setup code. For an example, see "Workaround" in the "More Information" section below. MORE INFORMATIONThe #DEFINE preprocessor directive is used to create compile-time constants in programs. Using #DEFINE to create constants instead of using memory variables can save on memory consumption, increase performance, and simplify programs. Steps to Reproduce Behavior1. Create new screen. 2. In the Setup code, enter the following command: #DEFINE x 10 3. To test the value of x, add a push button to the screen. In the VALID clause of the push button, enter this command: WAIT WINDOW STR(x) 4. Save, generate, and run the screen. 5. Click the push button. You will receive the following error message: Variable 'x' not found Open the screen program (.SPR file). There will not be any generated Setup code, even though the #DEFINE was added above. Workaround1. Open the screen (.SCX) file again. 2. Open the Setup code and add a comment somewhere in the Setup code. 3. Generate the screen again. 4. Click the push button. A wait window should appear with "10" as its prompt. Additional reference words: FoxDos FoxWin 2.50 2.50a 2.50 2.60 KBCategory: kbenv kbprg kbprb KBSubcategory: FxenvMemory |
Last Reviewed: June 27, 1995 |