'=========================================================================== ' Subject: DRAW 3D-LIKE TEXT BOXES Date: 10-26-97 (10:55) ' Author: The ABC Programmer Code: QB, QBasic, PDS ' Origin: voxel@freenet.edmonton.ab.ca Packet: TEXT.ABC '=========================================================================== ' 3D-Like Text Boxes programmed by William Yu (10-26-97) ' Just like the ones used in The ABC Express Reader ' 100% Public Domain ' Usage Notes: ' X,Y,XX,YY are self explanatory ' C = Bright Colour ' C2 = Dark Colour ' BC = Background Colour ' Solid = fill in box? 0 = No, anything else is Yes ' Indent = create an indent effect? 0 = No, anything else is yes DEFINT A-Z DECLARE SUB Draw.3DBox (X%, Y%, XX%, YY%, C%, C2%, BC%, Solid%, Indent) CONST False = 0 CONST True = NOT False CLS Draw.3DBox 8, 9, 72, 21, 15, 0, 1, True, False Draw.3DBox 10, 10, 70, 20, 15, 0, 1, False, True SUB Draw.3DBox (X%, Y%, XX%, YY%, C%, C2%, BC%, Solid%, Indent) Char1$ = "Ú" CharHoz$ = "Ä" Char2$ = "¿" CharVert$ = "³" Char3$ = "À" Char4$ = "Ù" COLOR C%, BC% A = (XX% - X%) - 1 IF Indent THEN COLOR C2% LOCATE Y%, X%: PRINT Char1$; STRING$(A, CharHoz$); COLOR C%: PRINT Char2$ ELSE LOCATE Y%, X%: PRINT Char1$; STRING$(A, CharHoz$); COLOR C2%: PRINT Char2$ END IF FOR I = Y% + 1 TO YY% - 1 IF Indent THEN COLOR C2% ELSE COLOR C% LOCATE I, X%: PRINT CharVert$; IF Solid% THEN PRINT SPACE$(A); IF Indent THEN COLOR C% ELSE COLOR C2% LOCATE I, XX%: PRINT CharVert$; NEXT I LOCATE YY%, X% IF Indent THEN COLOR C2% ELSE COLOR C% PRINT Char3$; IF Indent THEN COLOR C% ELSE COLOR C2% PRINT STRING$(A, CharHoz$); Char4$; END SUB