BUG: Pressing INS, DEL, HOME, or END Key Causes Cursor to Jump

ID: Q110119

The information in this article applies to:

SYMPTOMS

Pressing the INS, DEL, HOME, or END key when the currently selected object is a popup (selected but not activated) will cause the cursor to jump to the first check box object in the active window.

Pressing the INS, DEL, HOME, or END key from a radio button or other push button set will cause the cursor to jump to the first push button set defined on the screen and execute the push button's VALID clause.

This behavior does not occur in FoxPro 2.0 or 2.5 for MS-DOS.

RESOLUTION

Popups

See "Example 1 - (Popup)" below.

To resolve the problem demonstrated in Example 1, you must redefine or disable these keys through the ON KEY LABEL command.

Push Buttons

See "Example 2 - (Push Button)" below.

To resolve the problem demonstrated in Example 2, either make the same changes as for Example 1 or define a hot key ("\<") for each push button prompt.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

Steps to Reproduce Problem

Example 1 - (Popup):

Run the following program, and from the selected popup object press the DEL, INS, HOME, or END key. The cursor will jump to the "Check Box 1" object. Please note that the keys behave as expected if the popup is activated.)

   * PopKey.prg
   CLEAR
   STORE version() TO xver
   CREATE TABLE puTest ;
        (company C(35), contact C(20), cb1 N(1), cb2 N(1))
   INSERT INTO puTest ;
        values ("1st Data Reductions", "Tom Mix", 0, 1)
   SCATTER MEMVAR

   DEFINE WINDOW wrPuTest ;
        FROM INT((SROW()-24)/2),INT((SCOL()-45)/2) ;
        TO INT((SROW()-24)/2)+23,INT((SCOL()-45)/2)+44 ;
        TITLE "&xver" ;
        FLOAT ;
        NOCLOSE ;
        SHADOW ;
        NOMINIMIZE ;
        DOUBLE ;
        COLOR SCHEME 5

   ACTIVATE WINDOW wrPuTest NOSHOW
   @ 2,3 GET m.pb1 ;
        PICTURE "@^ \<One;\<Two;T\<hree;\<Four;F\<ive;\<Six" ;
        SIZE 3,9 ;
        DEFAULT "One" ;
        COLOR SCHEME 5, 6
   @ 6,3 GET m.company ;
        SIZE 1,35 ;
        DEFAULT " "
   @ 8,3 GET m.contact ;
        SIZE 1,20 ;
        DEFAULT " "
   @ 19,3 GET m.cb1 ;
        PICTURE "@*C Check Box 1" ;
        SIZE 1,16 ;
        DEFAULT 0
   @ 19,21 GET m.cb2 ;
        PICTURE "@*C Check Box 2" ;
        SIZE 1,16 ;
        DEFAULT 0
   IF NOT WVISIBLE("wrPuTest")
        ACTIVATE WINDOW wrPuTest
   ENDIF
   READ CYCLE

   RELEASE WINDOW wrPuTest
   CLOSE DATABASES
   ERASE puTest.dbf

Example 2 - (Push Buttons):

Run the following program and press TAB to move to the radio button set or the second push button set. Press the DEL, INS, HOME, or END key. The cursor will jump to the first push button set.

   * PBTEST.SPR
   CLEAR
   STORE VERSION() TO xver
   IF SET("TALK") = "ON"
      SET TALK OFF
      m.talkstat = "ON"
   ELSE
      m.talkstat = "OFF"
   ENDIF
   IF NOT WEXIST("wrpbtest")
      DEFINE WINDOW wrpbtest ;
         FROM INT((SROW()-12)/2),INT((SCOL()-25)/2) ;
         TO INT((SROW()-12)/2)+11,INT((SCOL()-25)/2)+24 ;
         TITLE "&xver" ;
         FLOAT ;
         NOCLOSE ;
         SHADOW ;
         NOMINIMIZE ;
         DOUBLE ;
         COLOR SCHEME 5
   ENDIF

   IF WVISIBLE("wrpbtest")
      ACTIVATE WINDOW wrpbtest SAME
   ELSE
      ACTIVATE WINDOW wrpbtest NOSHOW
   ENDIF
   @ 1,4 GET m.f2 ;
      SIZE 1,10 ;
      DEFAULT " "
   @ 2,4 GET m.pb1 ;
      PICTURE "@*HN One;Two" ;
      SIZE 1,7,1 ;
      DEFAULT 1 ;
      VALID _qlx0uojlv()
   @ 3,4 GET m.f1 ;
      SIZE 1,10 ;
      DEFAULT " "
   @ 4,4 GET m.rb1 ;
      PICTURE "@*RVN Four;Five;Six" ;
      SIZE 1,8,0 ;
      DEFAULT 1
   @ 7,4 GET m.f3 ;
      SIZE 1,10 ;
      DEFAULT " "
   @ 8,4 GET m.pb2 ;
      PICTURE "@*HN Eight;Nine" ;
      SIZE 1,7,1 ;
      DEFAULT 1 ;
      VALID _qlx0uojtm()
   IF NOT WVISIBLE("wrpbtest")
      ACTIVATE WINDOW wrpbtest
   ENDIF

   READ CYCLE
   RELEASE WINDOW wrpbtest
   IF m.talkstat = "ON"
      SET TALK ON
   ENDIF

   FUNCTION _qlx0uojlv     &&  m.pb1 VALID
      #REGION 1
      WAIT WINDOW "Push Button 1 Valid.."

   FUNCTION _qlx0uojtm     &&  m.pb2 VALID
      #REGION 1
      WAIT WINDOW "In Push Button 2 Valid"

Additional reference words: FoxDos buglist2.50a buglist2.50b buglist2.60a pop up checkbox 2.50a 2.50b 2.60a KBCategory: kbui kbprg kbbuglist KBSubcategory:

Last Reviewed: June 2, 1995