Window Drawing (2/4)

 BBS: Inland Empire Archive
Date: 10-16-93 (12:58)             Number: 4
From: EDWARD SCHLUNDER             Refer#: NONE
  To: ALL                           Recvd: NO  
Subj: Window Drawing (2/4)           Conf: (2) Quik_Bas
'>>> Page 2 of WINDOW.BAS begins here.
IF ATTR AND 32 THEN GOSUB SETXCORD: GOTO VUnfold

PrintWindow:
SetColor CULC
LOCATE Row1, Col1
PRINT ULC$; : SetColor CTOP
PRINT STRING$(WWIDTH - 1, ASC(TOP$)); : SetColor CURC
PRINT URC$
FOR J = Row1 + 1 TO Row2 - 1
LOCATE J, Col1
SetColor CLFT
PRINT LFT$; : SetColor CFIL
PRINT STRING$(WWIDTH - 1, ASC(FIL$)); : SetColor CRGT
PRINT RGT$
NEXT
LOCATE Row2, Col1
SetColor CLLC
PRINT LLC$; : SetColor CBOT
PRINT STRING$(WWIDTH - 1, ASC(BOT$)); : SetColor CLRC
PRINT LRC$

IF ATTR AND 8 THEN RETURN
IF ATTR AND 16 THEN RETURN
IF ATTR AND 32 THEN RETURN
EXIT SUB

GrowWindow:
Row1 = XRow1 + WHEIGHT \ 2
Row2 = Row1 + 1
Col1 = XCol1 + WWIDTH \ 2
Col2 = Col1 + 1
DO
WWIDTH = Col2 - Col1
WHEIGHT = Row2 - Row1
WaitSec .01
GOSUB PrintWindow
ALLMADE = Col1 = XCol1 AND Col2 = XCol2 AND Row1 = XRow1 AND Row2 = XRow2
IF ALLMADE THEN EndLoop = TRUE
IF Row1 > XRow1 THEN Row1 = Row1 - 1
IF Row2 < XRow2 THEN Row2 = Row2 + 1
IF Col1 > XCol1 THEN Col1 = Col1 - 1
IF Col2 < XCol2 THEN Col2 = Col2 + 1
IF Col1 < 1 THEN Col1 = 1
IF Col2 > 80 THEN Col2 = 80
IF Row1 < 1 THEN Row1 = 1
IF Row2 > 25 THEN Row2 = 25
LOOP UNTIL EndLoop
EXIT SUB

HUnfold:
Col1 = Col1 + WWIDTH \ 2
Col2 = Col1 + 1
DO
WWIDTH = Col2 - Col1
IF Col1 > XCol1 THEN Col1 = Col1 - 1
IF Col2 < XCol2 THEN Col2 = Col2 + 1
IF Col1 = XCol1 AND Col2 = XCol2 THEN EndLoop = TRUE
GOSUB PrintWindow
LOOP UNTIL EndLoop
EXIT SUB

VUnfold:
Row1 = Row1 + WHEIGHT \ 2
Row2 = Row1 + 1
DO
IF Row1 > XRow1 THEN Row1 = Row1 - 1
IF Row2 < XRow2 THEN Row2 = Row2 + 1
IF Row2 = XRow2 AND Row1 = XRow1 THEN EndLoop = TRUE
GOSUB PrintWindow
LOOP UNTIL EndLoop
EXIT SUB


SETXCORD:
XRow1 = Row1: XRow2 = Row2
XCol1 = Col1: XCol2 = Col2
RETURN
END SUB

SUB OpenWindow (Row1, Col1, Row2, Col2, Fore, Back, ATTR)
Col2 = Col2 - 2
WindowAttr(WindowNum) = ATTR
WindowRow1(WindowNum) = Row1
'>>> Page 2 of WINDOW.BAS ends here. Continued on next page.

... I found this really cool program, works great except it won't load!
___ Blue Wave/QWK v2.12


--- WM v3.01/93-0966
 * Origin: 1:114/289 POWER SURGE - Phoenix, Arizona 602/548-
9020  (1:114/289.0)
Outer Court
Echo Basic Postings

Books at Amazon:

Back to BASIC: The History, Corruption, and Future of the Language

Hackers: Heroes of the Computer Revolution (including Tiny BASIC)

Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution

The Advent of the Algorithm: The Idea that Rules the World

Moths in the Machine: The Power and Perils of Programming

Mastering Visual Basic .NET