Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Any hint for coding one to many showlist
Message
From
27/11/1998 10:09:33
Donny Sims
Independent Computer Consultants Inc
Scottsboro, Alabama, United States
 
 
To
23/11/1998 20:22:38
Jeffrey Liu
Uplink International Inc
Makati, Philippines
General information
Forum:
Visual FoxPro
Category:
FoxPro 2.x
Miscellaneous
Thread ID:
00160732
Message ID:
00161945
Views:
17
>Anyone can give me some hint for coding an inter-related textbox and a listbox.
>
>Example: Foxpro 2.6 Help index. While typing any topic in textbox character by character,content in listbox(an array) change varies acordingly
>
>
>thanks

Jeffery

Here's a piece of code taken from a Foxpro 2.6 app that does a find after each character is typed (once the typest pauses), you will need to substitute your own table and field names. This is some ugly code and it uses a text based interface but it gets the job done.
* FINDNAME - LOCATE SHOPPER NAMES ONE CHARACTER AT A TIME
USE NAMES INDEX NAMES
STORE 0 TO KEYVAL
STORE 'INPUT LAST NAME FIRST >'+SPACE(15) TO KEYBUILD
@ 1,5 SAY KEYBUILD+'   '
@ 8,5 SAY 'LETTERS OR BACKSPACE ONLY - ENTER TO CONTINUE - END TO EXIT'
DEFINE WINDOW FINDNAME AT 9,0 SIZE 19,100 FONT 'ARIAL',9 STYLE 'B' SYSTEM MDI
ACTIVATE WINDOW FINDNAME
BROW FIELDS NAME,LASTNAME,SUF,CITY,ST,CNUM,ADD1 REST NOEDIT NOWAIT NOREFRESH

* WAIT FOR PAUSE IN TYPING BEFORE DOING FIND
DO WHILE KEYVAL=0
 KEYVAL = INKEY(.06,'H')
ENDDO
IF ISALPHA(CHR(KEYVAL))
 KEYBUILD=TRIM(KEYBUILD)+UPPER(CHR(KEYVAL))
ELSE
 KEYBUILD=TRIM(KEYBUILD)
ENDIF

DO WHILE KEYVAL<>0
 KEYVAL = INKEY(.5,'H')
 IF ISALPHA(CHR(KEYVAL))
  KEYBUILD=TRIM(KEYBUILD)+UPPER(CHR(KEYVAL))
 ELSE
  KEYBUILD=TRIM(KEYBUILD)
 ENDIF
ENDDO

DO WHILE .T.
 ACTIVATE SCREEN
 DO CASE
 CASE KEYVAL=6 .OR. KEYVAL=23 .OR. KEYVAL=159
  EXIT
 CASE KEYVAL=13 .OR. KEYVAL=27
  EXIT
 CASE KEYVAL=127
  IF LEN(TRIM(KEYBUILD))>23
   KEYBUILD=SUBSTR(KEYBUILD,1,LEN(TRIM(KEYBUILD))-1)
  ENDIF
 CASE ISALPHA(CHR(KEYVAL)) 
  KEYBUILD=TRIM(KEYBUILD)+UPPER(CHR(KEYVAL))
 ENDCASE
 KEYVAL=0
 @ 1,5 SAY KEYBUILD+'   '
 IF LEN(TRIM(KEYBUILD))>23
  KEYFIND=SUBSTR(KEYBUILD,24,15)
  FIND &KEYFIND
 ELSE
  DO WHILE KEYVAL=0
   KEYVAL = INKEY(.06,'H')
  ENDDO
  LOOP
 ENDIF
 IF FOUND()
  @ 8,5 SAY 'LETTERS OR BACKSPACE ONLY - ENTER TO CONTINUE - END TO EXIT'
  BROW LAST NOWAIT
 ELSE
  @ 8,5 SAY 'NAME NOT FOUND - BACKSPACE TO RETRY - ENTER TO CONTINUE   '
 ENDIF
 DO WHILE KEYVAL=0
  KEYVAL = INKEY(.06,'H')
 ENDDO
ENDDO
IF KEYVAL<>6.AND.KEYVAL<>23.AND.KEYVAL<>159
 IF FOUND()
  @ 8,5 SAY 'USE ARROW KEYS TO POSITION HIGHLIGHT - CTRL+W TO CONTINUE   '
  BROW LAST
 ELSE
  BROW LAST TIMEOUT .1
  SKIP
 ENDIF
ELSE
 BROW LAST TIMEOUT .1
 GO BOTT
 SKIP
ENDIF
DEACTIVATE WINDOW FINDNAME
RELEASE WINDOWS FINDNAME
RETURN
Donny Sims

Life is what happens to us while were busy making other plans.
- John Lennon
Previous
Reply
Map
View

Click here to load this message in the networking platform