Author Topic: Simple mouse/cursor key driven menu  (Read 3833 times)

0 Members and 1 Guest are viewing this topic.

Offline Mad Axeman

  • Newbie
  • Posts: 74
    • View Profile
    • My web site - Harrythetrout
Simple mouse/cursor key driven menu
« on: November 03, 2020, 07:47:54 am »
I needed a simple cursor up/down and mouse driven menu for a program I'm writing so I came up with the following. It's quite simple and could probably be written a lot better but I don't play around with basic very often so it'll do for what I need.  It might be of use to someone out there so here it is :-)

Code: QB64: [Select]
  1. '
  2. ' Simple mouse and cursor key menu
  3. ' Written by Colin Birch
  4. ' Software written is Wales :-)
  5. '
  6.  
  7.  
  8. ' First section - This is where your main program would go
  9.  
  10. DIM z$(20)
  11. WIDTH 110
  12. _PALETTECOLOR 7, _RGB32(255, 255, 255) 'change color 7 intensity
  13. co1 = 0
  14. co2 = 7
  15. COLOR co1, co2
  16.  
  17. ' cls screen and call using menu 1
  18.  
  19. PRINT "First menu"
  20.  
  21. menuno = 1
  22. GOSUB menu1
  23.  
  24. menu1 = menu
  25.  
  26. ' cls screen and call using menu 2
  27.  
  28. PRINT "Second menu"
  29.  
  30. menuno = 2
  31. GOSUB menu1
  32.  
  33. menu2 = menu
  34.  
  35.  
  36. PRINT "Returns - "; menu1; " from first menu"
  37. PRINT "Returns - "; menu2; " from second menu"
  38.  
  39.  
  40.  
  41. ' **************************************************************************
  42.  
  43. ' Above is where the main program would go
  44.  
  45. ' **************************************************************************
  46.  
  47. ' Actual menu routine starts here
  48.  
  49. ' **************************************************************************
  50.  
  51.  
  52. menu1:
  53.  
  54. ' info for menu1
  55. IF menuno = 1 THEN
  56.  
  57.     z$(1) = " 1st Option "
  58.     z$(2) = " 2nd Option "
  59.     z$(3) = " 3rd Option "
  60.     z$(4) = " 4th Option "
  61.     z$(5) = " 5th Option "
  62.     z$(6) = " 6th Option "
  63.     z$(7) = " 7th Option "
  64.     z$(8) = " 8th Option "
  65.     z$(9) = " 9th Option "
  66.     z$(10) = "10th Option "
  67.     z$(11) = "11th Option "
  68.     z$(12) = "12th Option "
  69.     z$(13) = "13th Option "
  70.     z$(14) = "14th Option "
  71.     z$(15) = "15th Option "
  72.  
  73.     ' pt = number of menu entries
  74.     pt = 15
  75.  
  76.     ' mr = right most column for mouse to work.
  77.     ' usualy the length of longest menu entry
  78.     mr = 12
  79.  
  80.     ' menu colours
  81.     ' c1 & c2 non highlighted
  82.     ' c3 & c4 highlighted
  83.     c1 = 0
  84.     c2 = 7
  85.     c3 = 7
  86.     c4 = 0
  87.  
  88.     ' px & py screen locations for top left of menu
  89.     ' px row
  90.     ' py column
  91.     px = 4
  92.     py = 3
  93.  
  94.  
  95. ' info for menu 2
  96. IF menuno = 2 THEN
  97.  
  98.     z$(1) = "1st Option                        "
  99.     z$(2) = "2nd Option                        "
  100.     z$(3) = "3rd Option - This is a long entry "
  101.     z$(4) = "4th Option                        "
  102.     z$(5) = "5th Option                        "
  103.     z$(6) = "6th Option                        "
  104.  
  105.     ' pt = number of menu entries
  106.     pt = 6
  107.  
  108.     ' mr = right most column for mouse to work.
  109.     ' usualy length of longest menu entry
  110.     mr = 34
  111.  
  112.     ' menu colours
  113.     ' c1 & c2 non highlighted
  114.     ' c3 & c4 highlighted
  115.     c1 = 0
  116.     c2 = 7
  117.     c3 = 7
  118.     c4 = 0
  119.  
  120.     ' px & py screen locations for top left of menu
  121.     ' px row
  122.     ' py column
  123.     px = 6
  124.     py = 6
  125.  
  126.  
  127. ' Lets display the menu
  128. z1 = 0
  129.  
  130. reprint:
  131. IF z1 <= 0 THEN z1 = 0
  132. IF z1 >= (pt - 1) THEN z1 = pt - 1
  133.  
  134. COLOR c1, c2
  135. FOR i = 1 TO pt
  136.     LOCATE py + (i - 1), px
  137.     PRINT z$(i)
  138.  
  139. LOCATE py + z1, px
  140. COLOR c3, c4
  141. PRINT z$(z1 + 1)
  142.  
  143. ' do the mouse and cursor key inputs
  144. mousein:
  145.     DO WHILE _MOUSEINPUT '      Check the mouse status
  146.         mx = _MOUSEX
  147.         my = _MOUSEY
  148.         mb1 = _MOUSEBUTTON(1)
  149.         '       mb2 = _MOUSEBUTTON(2)
  150.         '      mw = _MOUSEWHEEL
  151.  
  152.  
  153.         IF mb1 = -1 THEN
  154.             menu = z1 + 1
  155.             COLOR co1, co2
  156.             RETURN
  157.         END IF
  158.  
  159.  
  160.         IF omy <> my THEN
  161.             IF mx >= px AND mx < (mr + px) AND my >= py AND my < pt + py THEN
  162.                 z1 = my - py
  163.                 omy = my
  164.                 GOTO reprint
  165.             END IF
  166.         END IF
  167.  
  168.     LOOP
  169.  
  170.     x$ = INKEY$
  171.  
  172. LOOP UNTIL x$ <> ""
  173. lx = ASC(x$)
  174.  
  175. ' Down Arrow
  176. IF x$ = CHR$(0) + CHR$(80) THEN
  177.     z1 = z1 + 1
  178.     GOTO reprint
  179.  
  180. ' Up Arrow
  181. IF x$ = CHR$(0) + CHR$(72) THEN
  182.     z1 = z1 - 1
  183.     GOTO reprint
  184.  
  185. ' Enter key
  186. IF x$ = CHR$(13) THEN
  187.     menu = z1 + 1
  188.     COLOR co1, co2
  189.     RETURN
  190.  
  191. GOTO mousein
  192.  
  193.  
  194.  
Oh look - a sig file :-)

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Simple mouse/cursor key driven menu
« Reply #1 on: November 03, 2020, 10:11:41 am »
Nice! and like Pete said should be easy to add scroller with _MOUSEWHEEL

Offline Mad Axeman

  • Newbie
  • Posts: 74
    • View Profile
    • My web site - Harrythetrout
Re: Simple mouse/cursor key driven menu
« Reply #2 on: November 03, 2020, 11:09:07 am »
Scroll should be easy enough but I don't have  a mouse with a mouse wheel with me.

Just made a small mod and added an option to draw a border around the options. The joys of working away from home and being bored sat in a hotel room on a rainy day

Code: QB64: [Select]
  1. '
  2. ' Simple mouse and cursor key menu
  3. ' Written by Colin Birch
  4. ' Software written is Wales :-)
  5. '
  6. ' V0.2 - Added optional border
  7.  
  8.  
  9.  
  10. ' First section - This is where your main program would go
  11.  
  12. DIM z$(20)
  13. WIDTH 110
  14. _PALETTECOLOR 7, _RGB32(255, 255, 255) 'change color 7 intensity
  15. co1 = 0
  16. co2 = 7
  17. COLOR co1, co2
  18.  
  19. ' cls screen and call using menu 1
  20.  
  21. PRINT "First menu"
  22.  
  23. menuno = 1
  24. GOSUB menu1
  25.  
  26. menu1 = menu
  27.  
  28. ' cls screen and call using menu 2
  29.  
  30. PRINT "Second menu"
  31.  
  32. menuno = 2
  33. GOSUB menu1
  34.  
  35. menu2 = menu
  36.  
  37.  
  38. PRINT "Returns - "; menu1; " from first menu"
  39. PRINT "Returns - "; menu2; " from second menu"
  40.  
  41.  
  42.  
  43. ' **************************************************************************
  44.  
  45. ' Above is where the main program would go
  46.  
  47. ' **************************************************************************
  48.  
  49. ' Actual menu routine starts here
  50.  
  51. ' **************************************************************************
  52.  
  53.  
  54. menu1:
  55.  
  56. ' info for menu1
  57. IF menuno = 1 THEN
  58.  
  59.     z$(1) = " 1st Option "
  60.     z$(2) = " 2nd Option "
  61.     z$(3) = " 3rd Option "
  62.     z$(4) = " 4th Option "
  63.     z$(5) = " 5th Option "
  64.     z$(6) = " 6th Option "
  65.     z$(7) = " 7th Option "
  66.     z$(8) = " 8th Option "
  67.     z$(9) = " 9th Option "
  68.     z$(10) = "10th Option "
  69.     z$(11) = "11th Option "
  70.     z$(12) = "12th Option "
  71.     z$(13) = "13th Option "
  72.     z$(14) = "14th Option "
  73.     z$(15) = "15th Option "
  74.  
  75.     ' pt = number of menu entries
  76.     pt = 15
  77.  
  78.     ' mr = right most column for mouse to work.
  79.     ' usualy the length of longest menu entry
  80.     mr = 12
  81.  
  82.     ' menu colours
  83.     ' c1 & c2 non highlighted
  84.     ' c3 & c4 highlighted
  85.     c1 = 0
  86.     c2 = 7
  87.     c3 = 7
  88.     c4 = 0
  89.  
  90.     ' px & py screen locations for top left of menu
  91.     ' px row
  92.     ' py column
  93.     px = 4
  94.     py = 3
  95.  
  96.     ' border on/off
  97.     ' pb = 1 border on
  98.     ' pb = 0 border off
  99.  
  100.     pb = 1
  101.  
  102.  
  103. ' info for menu 2
  104. IF menuno = 2 THEN
  105.  
  106.     z$(1) = "1st Option                        "
  107.     z$(2) = "2nd Option                        "
  108.     z$(3) = "3rd Option - This is a long entry "
  109.     z$(4) = "4th Option                        "
  110.     z$(5) = "5th Option                        "
  111.     z$(6) = "6th Option                        "
  112.  
  113.     ' pt = number of menu entries
  114.     pt = 6
  115.  
  116.     ' mr = right most column for mouse to work.
  117.     ' usualy length of longest menu entry
  118.     mr = 34
  119.  
  120.     ' menu colours
  121.     ' c1 & c2 non highlighted
  122.     ' c3 & c4 highlighted
  123.     c1 = 0
  124.     c2 = 7
  125.     c3 = 7
  126.     c4 = 0
  127.  
  128.     ' px & py screen locations for top left of menu
  129.     ' px row
  130.     ' py column
  131.     px = 6
  132.     py = 6
  133.  
  134.     ' border on/off
  135.     ' pb = 1 border on
  136.     ' pb = 0 border off
  137.  
  138.     pb = 0
  139.  
  140.  
  141. ' draw the border if needed
  142.  
  143. IF pb = 1 THEN
  144.  
  145.     pb = 0
  146.  
  147.     LOCATE py, px
  148.     PRINT "Õ";
  149.     FOR i = 1 TO mr
  150.         PRINT "Í";
  151.     NEXT
  152.     PRINT "¸"
  153.  
  154.     FOR i = 1 TO pt
  155.         LOCATE py + i, px
  156.         PRINT "³"; STRING$(mr, 32); "³"
  157.     NEXT
  158.  
  159.     LOCATE py + pt + 1, px
  160.     PRINT "Ô";
  161.     FOR i = 1 TO mr
  162.         PRINT "Í";
  163.     NEXT
  164.     PRINT "¾"
  165.  
  166.     py = py + 1
  167.     px = px + 1
  168.  
  169.  
  170. ' Border finished
  171.  
  172.  
  173. ' Lets display the menu
  174. z1 = 0
  175.  
  176. reprint:
  177. IF z1 <= 0 THEN z1 = 0
  178. IF z1 >= (pt - 1) THEN z1 = pt - 1
  179.  
  180. COLOR c1, c2
  181. FOR i = 1 TO pt
  182.     LOCATE py + (i - 1), px
  183.     PRINT z$(i)
  184.  
  185. LOCATE py + z1, px
  186. COLOR c3, c4
  187. PRINT z$(z1 + 1)
  188.  
  189. ' do the mouse and cursor key inputs
  190. mousein:
  191.     DO WHILE _MOUSEINPUT '      Check the mouse status
  192.         mx = _MOUSEX
  193.         my = _MOUSEY
  194.         mb1 = _MOUSEBUTTON(1)
  195.         '       mb2 = _MOUSEBUTTON(2)
  196.         '      mw = _MOUSEWHEEL
  197.  
  198.  
  199.         IF mb1 = -1 THEN
  200.             menu = z1 + 1
  201.             COLOR co1, co2
  202.             RETURN
  203.         END IF
  204.  
  205.  
  206.         IF omy <> my THEN
  207.             IF mx >= px AND mx < (mr + px) AND my >= py AND my < pt + py THEN
  208.                 z1 = my - py
  209.                 omy = my
  210.                 GOTO reprint
  211.             END IF
  212.         END IF
  213.  
  214.     LOOP
  215.  
  216.     x$ = INKEY$
  217.  
  218. LOOP UNTIL x$ <> ""
  219. lx = ASC(x$)
  220.  
  221. ' Down Arrow
  222. IF x$ = CHR$(0) + CHR$(80) THEN
  223.     z1 = z1 + 1
  224.     GOTO reprint
  225.  
  226. ' Up Arrow
  227. IF x$ = CHR$(0) + CHR$(72) THEN
  228.     z1 = z1 - 1
  229.     GOTO reprint
  230.  
  231. ' Enter key
  232. IF x$ = CHR$(13) THEN
  233.     menu = z1 + 1
  234.     COLOR co1, co2
  235.     RETURN
  236.  
  237. GOTO mousein
  238.  
  239.  
Oh look - a sig file :-)

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Simple mouse/cursor key driven menu
« Reply #3 on: November 03, 2020, 11:18:54 am »
Ohhhh! man I'd be lost without the wheel, forums and editing, wow!

You should know, the only thing that has to go between this loop is _MOUSEWHEEL
Code: QB64: [Select]
  1.     DO WHILE _MOUSEINPUT '      Check the mouse status
  2.         mx = _MOUSEX
  3.         my = _MOUSEY
  4.         mb1 = _MOUSEBUTTON(1)
  5.         '       mb2 = _MOUSEBUTTON(2)
  6.         '      mw = _MOUSEWHEEL
  7.  
  8.  
  9.         IF mb1 = -1 THEN
  10.             menu = z1 + 1
  11.             COLOR co1, co2
  12.             RETURN
  13.         END IF
  14.  
  15.  
  16.         IF omy <> my THEN
  17.             IF mx >= px AND mx < (mr + px) AND my >= py AND my < pt + py THEN
  18.                 z1 = my - py
  19.                 omy = my
  20.                 GOTO reprint
  21.             END IF
  22.         END IF
  23.  
  24.     LOOP
  25.  

Check it out!

Code: QB64: [Select]
  1. '
  2. ' Simple mouse and cursor key menu
  3. ' Written by Colin Birch
  4. ' Software written is Wales :-)
  5. '
  6. ' V0.2 - Added optional border
  7.  
  8.  
  9.  
  10. ' First section - This is where your main program would go
  11.  
  12. DIM z$(20)
  13. WIDTH 110
  14. _PALETTECOLOR 7, _RGB32(255, 255, 255) 'change color 7 intensity
  15. co1 = 0
  16. co2 = 7
  17. COLOR co1, co2
  18.  
  19. ' cls screen and call using menu 1
  20.  
  21. PRINT "First menu"
  22.  
  23. menuno = 1
  24. GOSUB menu1
  25.  
  26. menu1 = menu
  27.  
  28. ' cls screen and call using menu 2
  29.  
  30. PRINT "Second menu"
  31.  
  32. menuno = 2
  33. GOSUB menu1
  34.  
  35. menu2 = menu
  36.  
  37.  
  38. PRINT "Returns - "; menu1; " from first menu"
  39. PRINT "Returns - "; menu2; " from second menu"
  40.  
  41.  
  42.  
  43. ' **************************************************************************
  44.  
  45. ' Above is where the main program would go
  46.  
  47. ' **************************************************************************
  48.  
  49. ' Actual menu routine starts here
  50.  
  51. ' **************************************************************************
  52.  
  53.  
  54. menu1:
  55.  
  56. ' info for menu1
  57. IF menuno = 1 THEN
  58.  
  59.     z$(1) = " 1st Option "
  60.     z$(2) = " 2nd Option "
  61.     z$(3) = " 3rd Option "
  62.     z$(4) = " 4th Option "
  63.     z$(5) = " 5th Option "
  64.     z$(6) = " 6th Option "
  65.     z$(7) = " 7th Option "
  66.     z$(8) = " 8th Option "
  67.     z$(9) = " 9th Option "
  68.     z$(10) = "10th Option "
  69.     z$(11) = "11th Option "
  70.     z$(12) = "12th Option "
  71.     z$(13) = "13th Option "
  72.     z$(14) = "14th Option "
  73.     z$(15) = "15th Option "
  74.  
  75.     ' pt = number of menu entries
  76.     pt = 15
  77.  
  78.     ' mr = right most column for mouse to work.
  79.     ' usualy the length of longest menu entry
  80.     mr = 12
  81.  
  82.     ' menu colours
  83.     ' c1 & c2 non highlighted
  84.     ' c3 & c4 highlighted
  85.     c1 = 0
  86.     c2 = 7
  87.     c3 = 7
  88.     c4 = 0
  89.  
  90.     ' px & py screen locations for top left of menu
  91.     ' px row
  92.     ' py column
  93.     px = 4
  94.     py = 3
  95.  
  96.     ' border on/off
  97.     ' pb = 1 border on
  98.     ' pb = 0 border off
  99.  
  100.     pb = 1
  101.  
  102.  
  103. ' info for menu 2
  104. IF menuno = 2 THEN
  105.  
  106.     z$(1) = "1st Option                        "
  107.     z$(2) = "2nd Option                        "
  108.     z$(3) = "3rd Option - This is a long entry "
  109.     z$(4) = "4th Option                        "
  110.     z$(5) = "5th Option                        "
  111.     z$(6) = "6th Option                        "
  112.  
  113.     ' pt = number of menu entries
  114.     pt = 6
  115.  
  116.     ' mr = right most column for mouse to work.
  117.     ' usualy length of longest menu entry
  118.     mr = 34
  119.  
  120.     ' menu colours
  121.     ' c1 & c2 non highlighted
  122.     ' c3 & c4 highlighted
  123.     c1 = 0
  124.     c2 = 7
  125.     c3 = 7
  126.     c4 = 0
  127.  
  128.     ' px & py screen locations for top left of menu
  129.     ' px row
  130.     ' py column
  131.     px = 6
  132.     py = 6
  133.  
  134.     ' border on/off
  135.     ' pb = 1 border on
  136.     ' pb = 0 border off
  137.  
  138.     pb = 0
  139.  
  140.  
  141. ' draw the border if needed
  142.  
  143. IF pb = 1 THEN
  144.  
  145.     pb = 0
  146.  
  147.     LOCATE py, px
  148.     PRINT "Õ";
  149.     FOR i = 1 TO mr
  150.         PRINT "Í";
  151.     NEXT
  152.     PRINT "¸"
  153.  
  154.     FOR i = 1 TO pt
  155.         LOCATE py + i, px
  156.         PRINT "³"; STRING$(mr, 32); "³"
  157.     NEXT
  158.  
  159.     LOCATE py + pt + 1, px
  160.     PRINT "Ô";
  161.     FOR i = 1 TO mr
  162.         PRINT "Í";
  163.     NEXT
  164.     PRINT "¾"
  165.  
  166.     py = py + 1
  167.     px = px + 1
  168.  
  169.  
  170. ' Border finished
  171.  
  172.  
  173. ' Lets display the menu
  174. z1 = 0
  175.  
  176. reprint:
  177. IF z1 <= 0 THEN z1 = 0
  178. IF z1 >= (pt - 1) THEN z1 = pt - 1
  179.  
  180. COLOR c1, c2
  181. FOR i = 1 TO pt
  182.     LOCATE py + (i - 1), px
  183.     PRINT z$(i)
  184.  
  185. LOCATE py + z1, px
  186. COLOR c3, c4
  187. PRINT z$(z1 + 1)
  188.  
  189. ' do the mouse and cursor key inputs
  190. mousein:
  191.     DO WHILE _MOUSEINPUT '      Check the mouse status
  192.  
  193.         '      mw = _MOUSEWHEEL
  194.  
  195.     LOOP
  196.     mx = _MOUSEX
  197.     my = _MOUSEY
  198.     mb1 = _MOUSEBUTTON(1)
  199.     '       mb2 = _MOUSEBUTTON(2)
  200.     IF mb1 = -1 THEN
  201.         menu = z1 + 1
  202.         COLOR co1, co2
  203.         RETURN
  204.     END IF
  205.  
  206.  
  207.     IF omy <> my THEN
  208.         IF mx >= px AND mx < (mr + px) AND my >= py AND my < pt + py THEN
  209.             z1 = my - py
  210.             omy = my
  211.             GOTO reprint
  212.         END IF
  213.     END IF
  214.  
  215.  
  216.     x$ = INKEY$
  217.  
  218. LOOP UNTIL x$ <> ""
  219. lx = ASC(x$)
  220.  
  221. ' Down Arrow
  222. IF x$ = CHR$(0) + CHR$(80) THEN
  223.     z1 = z1 + 1
  224.     GOTO reprint
  225.  
  226. ' Up Arrow
  227. IF x$ = CHR$(0) + CHR$(72) THEN
  228.     z1 = z1 - 1
  229.     GOTO reprint
  230.  
  231. ' Enter key
  232. IF x$ = CHR$(13) THEN
  233.     menu = z1 + 1
  234.     COLOR co1, co2
  235.     RETURN
  236.  
  237. GOTO mousein
  238.  
  239.  
  240.  
  241.  

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Simple mouse/cursor key driven menu
« Reply #4 on: November 03, 2020, 11:26:43 am »
Oh I just noticed your new code with box around it isn't selecting from second menu anymore.

I thought I screwed it up with Mouse Polling Change, nope, it's there before that.

Update:
I took a deeper look into your code setup to see if it just needed a quick fix,...  GOTO's have me bouncing around like a pinball! Yikes!

Consider this:
Code: QB64: [Select]
  1. FUNCTION MenuChoice$(Menu$())  'this function takes a menu array and returns the choice the user selected
  2.  
  3. CLS   'own the screen save previous screen colors what not...
  4.  
  5. ub = UBOUND(Menu$)  'get upper and lower bounds of menu
  6. lb = LBOUND(Menu$)
  7.  
  8. 'print out menu
  9. 'wait for keys or mouse
  10. 'ect...
  11.  
  12.  
  13. END FUNTION  ' <<<<<<<<<<<<<<<<<<<<<<< Oh Ha! Ha! love my spelling errors
  14.  
  15.  
 

Now you just feed the function a menu array and wait for the function to return the user's choice.
« Last Edit: November 03, 2020, 01:50:41 pm by bplus »

Offline Mad Axeman

  • Newbie
  • Posts: 74
    • View Profile
    • My web site - Harrythetrout
Re: Simple mouse/cursor key driven menu
« Reply #5 on: November 03, 2020, 12:15:50 pm »
The border not working on the second menu was intentional. If you look there's the following lines:

    ' border on/off
    ' pb = 1 border on
    ' pb = 0 border off
 
    pb = 1

It's set to '1' on the first menu (draws border) and '0' on the second (no border) just to show the difference.
Yup, there's a few goto's in there. I'm afraid I grew up in the days of the Commodore VIC20 and C64 and back then it was the only way. I should know better as I do a lot with PHP which is a lot more structured. I think it's just me being lazy!

Oh look - a sig file :-)

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Simple mouse/cursor key driven menu
« Reply #6 on: November 03, 2020, 01:42:48 pm »
Ha! lazy, I think it more work to create and track 2 to N sets of menus and variables.
I should finish the function and we can compare results and ports to other apps. :)

You know with a function, all you have to do is get it written for one and make it general enough and you have it for any menu or small arrays or child menus off parent menus.

Then you can worry where to park them on screen, colors, borders all the bells and whistles, next thing you know, you are doing mini-widows ;-)
« Last Edit: November 03, 2020, 01:45:43 pm by bplus »

Offline bplus

  • Global Moderator
  • Forum Resident
  • Posts: 8053
  • b = b + ...
    • View Profile
Re: Simple mouse/cursor key driven menu
« Reply #7 on: November 03, 2020, 02:16:06 pm »
Oh crud Dav and Steve already have nice ones:
Dav's          https://www.qb64.org/forum/index.php?topic=2767.msg120095#msg120095
Steve mod: https://www.qb64.org/forum/index.php?topic=2767.msg120261#msg120261

Definitely a great project for work out!

Now maybe I can go back to flying lessons ;-)
« Last Edit: November 03, 2020, 02:22:42 pm by bplus »