BBS: Inland Empire Archive Date: 02-05-93 (03:51) Number: 399 From: RAYMOND KEITH Refer#: NONE To: ERIC MAYS Recvd: NO Subj: Data Input Editor Part 3 Conf: (2) Quik_Bas
'This first subroutine I use throughout my program therefore I have 'declared it's variables to be COMMON SHARED. The input editor needs 'Count% and HotKey$ plus you will need several of the mouse related 'variables to support things like a status line help message and to 'determine valid mouse clicks. You make the call, COMMON SHARED or 'passing them back and forth as parameters. SUB GetButOrKeyPress Button1% = 1 Button2% = 2 Button3% = 3 'needed to check all three mouse buttons for clicks. ButtonChecked% = 0 'Notes which button was clicked Status% = 0 'Status of a mouse button Count% = 0 'Number of times a button was clicked MouseX% = 0 'X coordinate of mouse pointer MouseY% = 0 'Y coordinate of mouse pointer HotKey$ = "" 'Stores the key press IF Count% = 0 THEN ButtonChecked% = 1 CALL ButtonPress(Button1%, Status%, Count%, MouseX%, MouseY%) END IF 'here I check to see if mouse button number 1 has been clicked. At the 'same time I get the current mouse pointer location. I am using another 'nifty library routine by Crescent Software. Getting mouse information 'like this is possible using just QuickBasic. Substitute your mouse 'code here. Note I only check a mouse button if there hasn't been any 'new button presses ie Count% = 0 IF Count% = 0 THEN ButtonChecked% = 2 CALL ButtonPress(Button2%, Status%, Count%, MouseX%, MouseY%) END IF 'Here I check mouse button number two IF Count% = 0 THEN ButtonChecked% = 3 CALL ButtonPress(Button3%, Status%, Count%, MouseX%, MouseY%) END IF 'Here I check mouse button three, needed for three button mice. HotKey$ = INKEY$ 'This grabs any key press that might be waiting in the keyboard buffer. END SUB NOTE: The DrawCursor routine which handles the graphics mode blinking cursor is 90% Crescent code so I cannot include it here. It's only 12 lines long and not terribly complicated. Obviously you would need to time the blinks. One other hint is this is where using the XOR comes in handy. For text mode you don't need this routine anyway. If you are working in graphics mode for god sakes sell the dog, look under the couch cushions for loose change or whatever it takes to scrape up enough money to buy a good graphics library like Crescent's Graphics Workshop. BTW for the record I don't work for Crescent or sell their products, I just buy them, use them, and recomend them. The CALL ShowCursor and CALL HideCursor routines just turn the mouse pointer on an off. Substitute your mouse code for these. Raymond --- DB 1.51/003468 * Origin: R/E Northwest (1:105/224)
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