1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-06-29 10:30:36 +00:00
QB64-PE/internal/help/_MOUSEINPUT.txt
SteveMcNeill 33adc04fc4 Add temp folder to repo. It's necessary as well!
Just more initial setting on... nothing much to see here.
2022-04-28 13:39:56 -04:00

89 lines
3.3 KiB
Plaintext

{{DISPLAYTITLE:_MOUSEINPUT}}
The [[_MOUSEINPUT]] function is used to monitor any new mouse positions, button presses or movements of the scroll wheel. Must be called before other mouse information becomes available.
{{PageSyntax}}
:{{Parameter|infoExists%%}} = [[_MOUSEINPUT]]
{{PageDescription}}
* Returns -1 if new mouse information is available, otherwise it returns 0.
* Must be called before reading any of the other mouse functions. The function will not miss any mouse input even during an [[INPUT]] entry.
* Use in a loop to monitor the mouse buttons, scroll wheel and coordinate positions.
* To clear all previous mouse data, use [[_MOUSEINPUT]] in a loop until it returns 0.
{{PageExamples}}
''Example 1:'' Mouse coordinate, click and scroll events are returned sequentially inside of a _MOUSEINPUT loop.
{{CodeStart}} '' ''
DO
{{Cl|DO...LOOP|DO}} {{Cl|WHILE}} {{Cl|_MOUSEINPUT}} ' Check the mouse status
{{Cl|PRINT}} {{Cl|_MOUSEX}}, {{Cl|_MOUSEY}}, {{Cl|_MOUSEBUTTON}}(1), {{Cl|_MOUSEWHEEL}}
{{Cl|LOOP}}
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} <> "" '' ''
{{CodeEnd}}
: ''Explanation:'' The latest mouse function status can be read after the loop. [[_LIMIT]] and [[_DELAY]] loops will slow returns down.
''Example 2:'' How to use a _MOUSEINPUT loop to locate [[PSET]] positions on a screen using a right mouse button click.
{{CodeStart}} '' ''
{{Cl|SCREEN}} 12
{{Cl|DO...LOOP|DO}} ' main program loop
' your program code
{{Cl|DO...LOOP|DO}} {{Cl|WHILE}} {{Cl|_MOUSEINPUT}}'mouse status changes only
x = {{Cl|_MOUSEX}}
y = {{Cl|_MOUSEY}}
{{Cl|IF...THEN|IF}} x > 0 {{Cl|AND (boolean)|AND}} x < 640 {{Cl|AND (boolean)|AND}} y > 0 {{Cl|AND (boolean)|AND}} y < 480 {{Cl|THEN}}
{{Cl|IF...THEN|IF}} {{Cl|_MOUSEBUTTON}}(2) {{Cl|THEN}}
{{Cl|PSET}} (x, y), 15
{{Cl|LOCATE}} 1, 1: {{Cl|PRINT}} x, y
{{Cl|END IF}}
{{Cl|END IF}}
{{Cl|LOOP}}
' your program code
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} = {{Cl|CHR$}}(27) '' ''
{{CodeEnd}}
''Example 3:'' Clearing any mouse data read before or during an [[INPUT]] entry. Press "I" to enter input:
{{CodeStart}}
{{Cl|PRINT}} "Press I to enter input! Press Q to quit"
{{Cl|DO...LOOP|DO}}
K$ = {{Cl|UCASE$}}({{Cl|INKEY$}})
{{Cl|DO...LOOP|DO}}
{{Cl|IF...THEN|IF}} {{Cl|_MOUSEBUTTON}}(1) = -1 {{Cl|THEN}} {{Cl|PRINT}} "*" 'indicates a mouse click event
{{Cl|LOOP}} {{Cl|WHILE}} {{Cl|_MOUSEINPUT}}
{{Cl|IF...THEN|IF}} K$ = "Q" {{Cl|THEN}} {{Cl|END}}
{{Cl|IF...THEN|IF}} K$ = "I" {{Cl|THEN}} 'press I to enter text
{{Cl|INPUT}} "Click the mouse and enter something: ", entry$ 'enter some text
{{Cl|GOSUB}} Clickcheck 'clear mouse data
{{Cl|END IF}}
{{Cl|LOOP}}
{{Cl|END}}
Clickcheck:
count = 0
{{Cl|DO...LOOP|DO}}
count = count + 1
{{Cl|LOOP}} {{Cl|WHILE}} {{Cl|_MOUSEINPUT}}
{{Cl|PRINT}} count 'returns the number of loops before mouse data is cleared
{{Cl|RETURN}} '' ''
{{CodeEnd}}
:''Explanation:'' Click the mouse a few times while entering [[INPUT]] text. When Enter is pressed, the number of loops are displayed.
{{PageSeeAlso}}
* [[_MOUSEX]], [[_MOUSEY]], [[_MOUSEBUTTON]], [[_MOUSEWHEEL]]
* [[_MOUSESHOW]], [[_MOUSEHIDE]], [[_MOUSEMOVE]]
* [[Controller Devices]]
{{PageNavigation}}
<