BBS: Inland Empire Archive Date: 12-31-92 (12:05) Number: 375 From: ROB SMETANA Refer#: NONE To: ALL Recvd: NO Subj: Smooth Scrolling Conf: (2) Quik_Bas
' ' Someone recently requested a smooth scrolling utility. ' Here's one, plus some demo code. I hope this helps. ' The demo is nothing fancy, but it shows that it does work. ' See the notes sprinkled throughout to experiment w/ different ' settings. ' ' Vertical AND horizontal smooth scrolling routines (text OR GFX)! ' ' NOTE: Requires Smooth.Obj (see below) ' EGA & VGA ONLY !!!! ' We've run this in both PDS and QB. ' Works in BOTH text and graphics modes. See SCREEN 8! ' ' REQUIRES: Smooth.Obj (Run the debug script ' through DEBUG to create Smooth.Obj. ' The NEXT message has the debug script.) ' DEFINT A-Z '... SCREEN 8 '...Try this in text mode. Then ' try Screen 8 (w/ higher speed). COLOR 14, 0: CLS LOCATE 4, 25 PRINT "Press <Escape> to move on."; FOR x = 10 TO 24 LOCATE x, 10 PRINT STRING$(60, CHR$(55 + x)); NEXT Speed = 1 '...Change this! See notes. 'NOTES: The higher the Speed, the faster the scroll. ' Use Speed = 1 for subtle scrolling. ' Try Speed = 5 (10 in graphics) for very fast scrolling. ' Try Speed = 10+ (25 in gfx) to see some **real shaking**. ' ' Even in text mode here, Row and Column use GRAPHICS MODE ' pixel coordinates (ie., begin w/ 0,0). ' '================================== demo Vertical smooth scrolling Row = 0 Col = 0 WhichWay = Speed '...start by going up DO UNTIL INKEY$ = CHR$(27) '...press Esc to end demo LOCATE 10, 1: PRINT Row; CALL SmoothScroll(Row, Col) Row = Row + WhichWay IF Row > 150 THEN '...try 400 here WhichWay = -Speed '...reverse direction ELSEIF Row < 1 THEN Row = 1 WhichWay = Speed END IF LOOP CALL SmoothScroll(0, 0) '... return to normal (sort of) '================================= demo horizontal smooth scrolling Row = 0 Col = 0 WhichWay = Speed '...start by going left DO UNTIL INKEY$ = CHR$(27) '...press Esc to END demo LOCATE 1, 36: PRINT Col; CALL SmoothScroll(Row, Col) Col = Col + WhichWay IF Col > 65 THEN '...try 300 here WhichWay = -Speed '...reverse direction ELSEIF Col < 0 THEN Col = 0 WhichWay = Speed END IF LOOP CALL SmoothScroll(0, 0) '... return to normal (sort of) --- RBBSMail 17.3A * Origin: PCUG BBS - San Francisco HST/V.32 415-621-2609 (RBBS 1:125/41.0)
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