MOUSEY: Difference between revisions
Jump to navigation
Jump to search
Navigation:
Main Page with Articles and Tutorials
Keyword Reference - Alphabetical
Keyword Reference - By usage
Report a broken link
No edit summary |
No edit summary |
||
(4 intermediate revisions by the same user not shown) | |||
Line 13: | Line 13: | ||
* [[_MOUSEINPUT]] must be used to detect any changes in the mouse position and is '''required''' for any coordinate returns. | * [[_MOUSEINPUT]] must be used to detect any changes in the mouse position and is '''required''' for any coordinate returns. | ||
=== QBasic/QuickBASIC === | |||
==QBasic/QuickBASIC== | * In [[SCREEN]] 0, QBasic's [[CALL ABSOLUTE|ABSOLUTE]] returned graphic coordinates. QB64 mouse functions return the text coordinates. | ||
* In [[SCREEN]] 0, QBasic's [[CALL ABSOLUTE|ABSOLUTE]] returned graphic coordinates. QB64 mouse functions return the text coordinates. | |||
{{PageExamples}} | {{PageExamples}} | ||
''Example:'' Highlighting a row of text in Screen 0. | ''Example:'' Highlighting a row of text in Screen 0. | ||
{{CodeStart}} | {{CodeStart}} | ||
minX = 20: maxX = 60: minY = 10: maxY = 24 | minX = 20: maxX = 60: minY = 10: maxY = 24 | ||
selection = 0 'the screen Y coordinate of the previously highlighted item | selection = 0 'the screen Y coordinate of the previously highlighted item | ||
Line 36: | Line 35: | ||
{{Cl|END IF}} | {{Cl|END IF}} | ||
'Highlight any selected row | 'Highlight any selected row | ||
{{Cl|IF}} selection {{Cl|THEN}} SelectRow selection, minX, maxX, 2 | {{Cl|IF}} selection {{Cl|THEN}} SelectRow selection, minX, maxX, 2 | ||
{{Cl|IF}} {{Cl|_MOUSEBUTTON}}(1) {{Cl|THEN}} {{Cl|LOCATE}} 1, 2: {{Cl|PRINT}} x, y, selection | {{Cl|IF}} {{Cl|_MOUSEBUTTON}}(1) {{Cl|THEN}} {{Cl|LOCATE}} 1, 2: {{Cl|PRINT}} x, y, selection | ||
{{Cl|END IF}} | {{Cl|END IF}} | ||
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} <> "" | {{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|INKEY$}} <> "" | ||
Line 49: | Line 48: | ||
addr& = addr& + 2 | addr& = addr& + 2 | ||
{{Cl|NEXT}} | {{Cl|NEXT}} | ||
{{Cl|END SUB}} | {{Cl|END SUB}} | ||
{{CodeEnd}} | {{CodeEnd}} | ||
Line 57: | Line 56: | ||
* [[_MOUSEINPUT]], [[_MOUSEMOVE]] | * [[_MOUSEINPUT]], [[_MOUSEMOVE]] | ||
* [[_MOUSESHOW]], [[_MOUSEHIDE]] | * [[_MOUSESHOW]], [[_MOUSEHIDE]] | ||
* [[_MOUSEMOVEMENTX]], [[_MOUSEMOVEMENTY]] | * [[_MOUSEMOVEMENTX]], [[_MOUSEMOVEMENTY]] | ||
* [[Controller Devices]] | * [[Controller Devices]] | ||
{{PageNavigation}} | {{PageNavigation}} |
Latest revision as of 21:19, 2 February 2023
The _MOUSEY function returns the current vertical (row) mouse cursor position when read after _MOUSEINPUT.
Syntax
- pixelRow% = _MOUSEY
Description
- SCREEN 0 returns the INTEGER vertical text row position (from build 20170817/62 onward); older versions return a SINGLE vertical text row position. Use INTEGER variables to avoid floating decimal returns.
- Graphic screen modes 1, 2 and 7 to 13 and _NEWIMAGE 32 bit return the INTEGER pixel columns.
- To calculate text rows in graphic modes divide the return by 16 or the _FONTHEIGHT of _FONT characters.
- _MOUSEINPUT must be used to detect any changes in the mouse position and is required for any coordinate returns.
QBasic/QuickBASIC
- In SCREEN 0, QBasic's ABSOLUTE returned graphic coordinates. QB64 mouse functions return the text coordinates.
Examples
Example: Highlighting a row of text in Screen 0.
minX = 20: maxX = 60: minY = 10: maxY = 24 selection = 0 'the screen Y coordinate of the previously highlighted item FOR i% = 1 TO 25: LOCATE i%, 40: PRINT i%;: NEXT DO: _LIMIT 100 IF _MOUSEINPUT THEN 'Un-highlight any selected row IF selection THEN selectRow selection, minX, maxX, 0 x = _MOUSEX y = _MOUSEY IF x >= minX AND x <= maxX AND y >= minY AND y <= maxY THEN selection = y ELSE selection = 0 END IF 'Highlight any selected row IF selection THEN SelectRow selection, minX, maxX, 2 IF _MOUSEBUTTON(1) THEN LOCATE 1, 2: PRINT x, y, selection END IF LOOP UNTIL INKEY$ <> "" SUB SelectRow (y, x1, x2, col) DEF SEG = &HB800 addr& = (x1 - 1 + (y - 1) * _WIDTH) * 2 + 1 FOR x = x1 TO x2 oldCol = PEEK(addr&) AND &B10001111 ' Mask foreground color and blink bit POKE addr&, oldCol OR ((col AND &B111) * &B10000) ' Apply background color addr& = addr& + 2 NEXT END SUB |
See also
- _MOUSEX, _MOUSEBUTTON, _MOUSEWHEEL
- _MOUSEINPUT, _MOUSEMOVE
- _MOUSESHOW, _MOUSEHIDE
- _MOUSEMOVEMENTX, _MOUSEMOVEMENTY
- Controller Devices