'=========================================================================== ' Subject: FIXED LENGTH SCROLL Date: 11-30-95 (00:00) ' Author: Raymond Joh Code: QB, QBasic, PDS ' Origin: Dslayer@gnn.com Packet: MISC.ABC '=========================================================================== DECLARE SUB HOTKEYS () DECLARE FUNCTION GETKEY% () 'SCROLLING A SCREEN LENGTH FIXED MENU-(UP TO 26 FILES POSSIBLE) 'RAYMOND JOH 11/30/95 'COMPUTERS SOLUTIONS 'PANAMA CITY,FLA. ' 'THIS DEMO WAS CREATED WITH "QBasic" AND I'M SURE 'COULD BE GREATLY IMPROVED UPON...MY SECOND MONTH 'AT PROGRAMING... CONST UPKEY = 72 * 256, DOWNKEY = 80 * 256, ESCAPE = 27, ENTER = 13 SCREEN 12 'SCREEN MODE OF CHOICE OF AUTHOR ' ##################### ' ## USER VARIBLES ## ' ##################### LIN% = 13 'NUMBER OF FILES FOR DISPLAY:CAN BE UP TO 26 DL% = 6 'BEGINNING OF DISPLAY LINE,ADJUST ACCORDINGLY P% = 15 'BEGINNING LINE POSITION,ADJUST ACCORDINGLY 'DATA 'THE SAMPLE DATA, I HAVE INCLUDED AT THE END 'END OF THIS PROGRAM IS JUST THAT. I HAVE 'INCLUDED INPUT AND OUTPUT STATEMENTS IN THE 'CASE THAT YOU NEED TO ACCESS YOUR DATA FROM 'FILES DIM NAM$(1 TO LIN%) 'LAST NAME DIM NAM1$(1 TO LIN%) 'FIRST NAME HOTKEYS OPEN "C:\DATA.DAT" FOR OUTPUT AS #1 'THIS FILE IS CREATED ON YOUR FOR C% = 1 TO LIN% 'C-DRIVE.YOU MAY CHANGE THIS BY READ NAM$(C%), NAM1$(C%) 'SELECTING THE DRIVE AND FILE WRITE #1, NAM$(C%), NAM1$(C%) 'OF YOUR CHOICE. NEXT C% OPEN "C:\DATA.DAT" FOR INPUT AS #2 'ABOVE ^ FILE IS READ FROM YOUR C% = 1 'C-DRIVE.BE SURE THEY USE EXACTLY FOR C% = 1 TO LIN% 'THE SAME PATH INPUT #2, NAM$(C%), NAM1$(C%) IF CUR% = O THEN LOCATE DL%, P% COLOR 12 PRINT " "; NAM$(C%); ","; NAM1$(C%); " " CUR% = CUR% + 1 ELSE LOCATE DL%, P% COLOR 15 PRINT " "; NAM$(C%); ","; NAM1$(C%); " " END IF DL% = DL% + 1 NEXT C% DL% = DL% - LIN% 'BEGINNING OF DISPLAY LINE CMXDL% = DL% + LIN% 'CHECK MAXIMUM DISPLAY LINE VARIBLE CMNDL% = DL% 'CHECK MINIMUN DISPLAY LINE VARIBLE C% = 1 'RESET ARRAY TEXT SUBSCRIPT DO KEYIN% = GETKEY% 'INITIATE INKEY% BY CALLING GETKEY% SELECT CASE KEYIN% ' CASE DOWNKEY 'DOWN-ARROW PRESSED IF DL% > DL% - 1 THEN IF DL% < CMXDL% - 1 THEN LOCATE DL%, P% COLOR 15 PRINT " "; NAM$(C%); ","; NAM1$(C%); " " LOCATE DL% + 1, P% COLOR 12 PRINT " "; NAM$(C% + 1); ","; NAM1$(C% + 1); " " C% = C% + 1 DL% = DL% + 1 ELSEIF DL% = CMXDL% - 1 THEN LOCATE DL%, P% COLOR 15 PRINT " "; NAM$(C%); ","; NAM1$(C%); " " DL% = DL% - LIN% + 1 C% = C% - LIN% + 1 LOCATE DL%, P% COLOR 12 PRINT " "; NAM$(C%); ","; NAM1$(C%); " " END IF END IF CASE UPKEY 'UP-ARROW PRESSED IF DL% <= CMXDL% + 1 THEN IF DL% > CMNDL% THEN LOCATE DL% - 1, P% COLOR 12 PRINT " "; NAM$(C% - 1); ","; NAM1$(C% - 1); " " LOCATE DL%, P% COLOR 15 PRINT " "; NAM$(C%); ","; NAM1$(C%); " " DL% = DL% - 1 C% = C% - 1 ELSEIF DL% = CMNDL% THEN LOCATE DL%, P% COLOR 15 PRINT " "; NAM$(C%); ","; NAM1$(C%); " " DL% = DL% + LIN% - 1 C% = C% + LIN% - 1 LOCATE DL%, P% COLOR 12 PRINT " "; NAM$(C%); ","; NAM1$(C%); " " END IF END IF CASE ENTER ' PRESSED LOCATE 17, 42 COLOR 15 PRINT "YOU MADE A SELECTION" LOCATE 18, 44 COLOR 12 PRINT NAM1$(C%); " "; NAM$(C%) CASE ESCAPE ' PRESSED CLS LOCATE 10, 30 PRINT "I SEE YOU FOUND THE WAY OUT" SYSTEM END SELECT LOOP REM ################### REM ## SAMPLE DATA ## REM ################### DATA Freud,Ziggy DATA Jung,Carla DATA Id,Sid DATA Ego,Emma DATA Okiedokie,Ima DATA Nerosis,Nathan DATA Psychosis,Patty DATA Dribble,Sybil DATA Regressive,Randy DATA Depressive,Danny DATA Melocholy,Mary DATA Maniac,Manny DATA Joh,Raymond FUNCTION GETKEY% DO KEYIN$ = INKEY$ LOOP UNTIL LEN(KEYIN$) GETKEY% = CVI(KEYIN$ + CHR$(0)) END FUNCTION SUB HOTKEYS LOCATE 24, 18: PRINT "UP-ARROW SCROLLS UP...DAH " LOCATE 25, 18: PRINT "DOWN-ARROW OK,ONE GUESS,YOU GOT IT " LOCATE 26, 18: PRINT " LETS YOU MAKE A SELECTION " LOCATE 27, 18: PRINT " IS SETUP YOU TAKE YOU OUT " END SUB