Knowledge Base

PRB: Program w/ @..SAY..GETs Exits If Press PAGE UP/PAGE DOWN

Article ID: 137279

Article Last Modified on 5/7/2003


APPLIES TO


This article was previously published under Q137279

SYMPTOMS

Some developers porting code form other FoxPro versions, including MS-DOS and Windows, are still using hard coded screen displays (@..SAY..GETs in a .prg file).

In Visual FoxPro, you will find that the behavior is somewhat different from version 2.x products and other XBase languages. Pressing the PAGE UP or PAGE DOWN key while the program is running causes the program to stop, and no validation takes place if the GET command has a Valid clause.

RESOLUTION

In the beginning of the program place this code:
   ON KEY LABEL PGUP KEYBOARD "{BACKTAB}"
   ON KEY LABEL PGDN KEYBOARD "{TAB}"
				
This will allow the program to continue normally as if the ENTER key was pressed.

STATUS

This behavior is by design.

MORE INFORMATION

Steps to Reproduce Behavior

  1. Create a program containing this code:
       CLEAR
       mvar  = SPACE(10)
       mvar2 = SPACE(10)
       @ 1,1 GET mvar VALID myvalid()
       @ 4,1 GET mvar2
       READ CYCLE
    
       PROCEDURE myvalid
         WAIT WINDOW 'In the Procedure of Myvalid'
       RETURN
    					
  2. Run the program.
  3. Put a value in mvar and press ENTER. The message 'In the Procedure of Myvalid' appears as expected.
  4. Enter a value in mvar2 and press ENTER. The program cycles back to mvar.
  5. Press the PAGE DOWN Key. The program exits, and no validation takes place.

Additional query words: VFoxWin

Keywords: kbprb KB137279