mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-16 16:44:05 +00:00
6e01fc8dce
Added new _STRCMP and _STRICMP commands for quick string comparisons. Cleaned up QB64 to finish removing the QUI (quick user insert) code and folders. Altered UCASE and LCASE routines to be faster in some situations for us.
65 lines
No EOL
2.7 KiB
Text
65 lines
No EOL
2.7 KiB
Text
The '''_MOUSEWHEEL''' function returns a positive or negative [[INTEGER]] value indicating mouse scroll clicks since the last read.
|
|
|
|
|
|
{{PageSyntax}}
|
|
:::{{Parameter|scroll%}} = {{KW|_MOUSEWHEEL}}
|
|
|
|
|
|
''Usage:''
|
|
* A return value of 1 represent one "click" the mouse scroll wheel was moved toward the user.
|
|
* A return value of -1 represent one "click" the mouse scroll wheel was moved away from the user.
|
|
* After a "click" has been read, the value resets to 0 automatically so cumulative position values must be added.
|
|
* If no movement on the wheel has occurred since the last [[_MOUSEINPUT]] read, _MOUSEWHEEL returns 0.
|
|
|
|
|
|
''Example 1:'' Reading the cumulative mouse wheel "clicks".
|
|
{{CodeStart}} '' ''
|
|
DO: {{Cl|_LIMIT}} 100
|
|
DO WHILE {{Cl|_MOUSEINPUT}}
|
|
Scroll = Scroll + {{Cl|_MOUSEWHEEL}}
|
|
LOCATE 10, 20: PRINT Scroll
|
|
LOOP
|
|
LOOP UNTIL INKEY$ = CHR$(13) ' press Enter to quit '' ''
|
|
{{CodeEnd}}
|
|
|
|
|
|
''Example 2:'' A simple text scrolling routine using the mouse wheel value to read a text array.
|
|
{{CodeStart}} '' ''
|
|
{{Cl|DIM}} Array$(100)
|
|
{{Cl|LINE INPUT}} "Enter a file name with 100 or more lines of text: ", file$
|
|
{{Cl|OPEN}} file$ {{Cl|FOR (file statement)|FOR}} {{Cl|INPUT (file mode)|INPUT}} {{Cl|AS}} #1
|
|
{{Cl|DO...LOOP|DO}} {{Cl|UNTIL}} {{Cl|EOF}}(1)
|
|
inputcount = inputcount + 1
|
|
{{Cl|LINE INPUT (file statement)|LINE INPUT}} #1, Array$(inputcount)
|
|
{{Cl|IF...THEN|IF}} inputcount = 100 {{Cl|THEN}} {{Cl|EXIT DO}}
|
|
{{Cl|LOOP}}
|
|
{{Cl|FOR...NEXT|FOR}} n = 1 {{Cl|TO}} 21: {{Cl|PRINT}} Array$(n): {{Cl|NEXT}}
|
|
{{Cl|CLOSE}} #1
|
|
DO
|
|
{{Cl|DO...LOOP|DO}} {{Cl|WHILE}} {{Cl|_MOUSEINPUT}}
|
|
{{Cl|IF...THEN|IF}} row >= 0 {{Cl|THEN}} row = row + {{Cl|_MOUSEWHEEL}} {{Cl|ELSE}} row = 0 'prevent under scrolling
|
|
{{Cl|IF...THEN|IF}} row > inputcount - 20 {{Cl|THEN}} row = inputcount - 20 'prevent over scrolling
|
|
{{Cl|IF...THEN|IF}} prevrow <> row {{Cl|THEN}} 'look for a change in row value
|
|
{{Cl|IF...THEN|IF}} row > 0 {{Cl|AND (boolean)|AND}} row <= inputcount - 20 {{Cl|THEN}}
|
|
{{Cl|CLS}}: {{Cl|LOCATE}} 2, 1
|
|
{{Cl|FOR...NEXT|FOR}} n = row {{Cl|TO}} row + 20
|
|
{{Cl|PRINT}} Array$(n)
|
|
{{Cl|NEXT}}
|
|
{{Cl|END IF}}
|
|
{{Cl|END IF}}
|
|
prevrow = row 'store previous row value
|
|
{{Cl|LOOP}}
|
|
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} > "" '' ''
|
|
{{CodeEnd}}
|
|
{{small|Code by Ted Weissgerber}}
|
|
<center>Note: QB64 comes with a text file called ''readme.txt'' that is large enough for this example.</center>
|
|
|
|
|
|
{{PageSeeAlso}}
|
|
* [[_MOUSEX]], [[_MOUSEY]], [[_MOUSEBUTTON]]
|
|
* [[_MOUSEINPUT]], [[_MOUSEMOVE]]
|
|
* [[_MOUSESHOW]], [[_MOUSEHIDE]]
|
|
* [[Controller_Devices]]
|
|
|
|
|
|
{{PageNavigation}} |