'=========================================================================== ' Subject: BOXED INPUT Date: 12-07-97 (21:05) ' Author: John Charles Bull III Code: QB, QBasic, PDS ' Origin: vividbarrier@hotmail.com Packet: TEXT.ABC '=========================================================================== DECLARE SUB boxinput (xa!, xb!, xc!, xd!, bgcol!, txtcol!, curcol!, x$) ' /........................\ Vivid Barrier Software 1997 ' |.oO..oOo.oOo..vivid.....| QBasic 4.5x Useful SUB Procedures ' |.oO.oOo..oOo....barrier.| by John Charles Bull III ' |.oO.oOo..oOOOOo..=O97O=.| ' |.oOoOo...oOo.oOo........| ' |.oOOo....oOOOOo.........| ' \......................../ ' ' BOXINPUT will allow you to set a box on the screen that input can be put ' into. You can specify the cords of the box, the text, background, and ' cursor color. The whole input of the BOX is stored in one single string ' variable. I think this can be very useful. ' ' boxinput(startX,startY,endX,endY,bgcolor,text color,cursor color,string$) CLS 'clear the screen CALL boxinput(1, 1, 75, 5, 7, 15, 4, z$) 'input in a box LOCATE 16, 1: PRINT z$ 'print back the input SUB boxinput (xa, xb, xc, xd, bgcol, txtcol, curcol, x$) ' boxinput(startX,startY,endX,endY,bgcolor,text color,cursor color,string$) COLOR txtcol, bgcol a = xa: b = xb DO LOCATE b, a: PRINT " "; a = a + 1 IF a = xc THEN a = xa b = b + 1 END IF LOOP UNTIL b = xd + 1 a = xa b = xb DO zc = SCREEN(a, b, 0): COLOR txtcol, curcol: LOCATE a, b: PRINT CHR$(zc); GOSUB wait0 IF z$ = CHR$(0) + "H" THEN IF a = xa THEN ELSE zc = SCREEN(a, b, 0): COLOR txtcol, bgcol: LOCATE a, b: PRINT CHR$(zc); a = a - 1 END IF END IF IF z$ = CHR$(0) + "P" OR z$ = CHR$(13) THEN IF a = xd THEN ELSE zc = SCREEN(a, b, 0): COLOR txtcol, bgcol: LOCATE a, b: PRINT CHR$(zc); a = a + 1 END IF END IF IF z$ = CHR$(0) + "M" THEN IF b = xc - 1 THEN ELSE zc = SCREEN(a, b, 0): COLOR txtcol, bgcol: LOCATE a, b: PRINT CHR$(zc); b = b + 1 END IF END IF IF z$ = CHR$(0) + "K" THEN IF b = xb THEN ELSE zc = SCREEN(a, b, 0): COLOR txtcol, bgcol: LOCATE a, b: PRINT CHR$(zc); b = b - 1 END IF END IF IF ASC(z$) >= 31 AND ASC(z$) <= 127 THEN COLOR txtcol, bgcol: LOCATE a, b: PRINT z$; IF b = xc - 1 AND a = xd THEN ELSE b = b + 1 IF b = xc THEN IF a = xd THEN ELSE a = a + 1 b = xb END IF END IF END IF END IF LOOP UNTIL z$ = CHR$(0) + ";" zc = SCREEN(a, b, 0): COLOR txtcol, bgcol: LOCATE a, b: PRINT CHR$(zc); GOTO enditboxinput wait0: z$ = INKEY$ IF z$ = "" THEN GOTO wait0 RETURN enditboxinput: a = xa: b = xb x$ = "" DO c = SCREEN(b, a, 0) x$ = x$ + CHR$(c) a = a + 1 IF a = xc THEN a = xa b = b + 1 x$ = x$ + CHR$(13) END IF LOOP UNTIL b = xd + 1 COLOR 7, 0 END SUB