Este código permite elegir opciones de un menú con el cursor para QuickBasic:
'Menu.bas Ray Thomas February 2002
OPTION BASE 1
DIM MenuItem(3) AS STRING 'Define the menu item array
DIM ChooseItem AS INTEGER 'Currently chosen menu item
DIM XMenuPosn AS INTEGER 'Controls the menu item X positions
DIM YMenuPosn AS INTEGER 'Controls the menu item Y positions
MenuItem$(1) = " Alpha "
MenuItem$(2) = " Bravo "
MenuItem$(3) = " Charlie "
CLS
ChooseItem = 1
XMenuPosn = 10
YMenuPosn = 3
GOSUB DrawMenu
'get cursor key movements and redraw menu
DO
Cmmnd$ = INKEY$
IF LEN(Cmmnd$) = 2 THEN Cmmnd$ = RIGHT$(Cmmnd$, 1)
IF Cmmnd$ = "8" OR Cmmnd$ = CHR$(72) THEN GOSUB MoveUp
IF Cmmnd$ = "2" OR Cmmnd$ = CHR$(80) THEN GOSUB MoveDown
IF Cmmnd$ = "7" OR Cmmnd$ = CHR$(71) THEN ChooseItem = 1
IF Cmmnd$ = "1" OR Cmmnd$ = CHR$(79) THEN ChooseItem = UBOUND(MenuItem)
GOSUB DrawMenu
LOOP UNTIL Cmmnd$ = CHR$(13)
PRINT
COLOR 16, 10
PRINT "Item chosen ="; MenuItem(ChooseItem)
END
DrawMenu:
'Draw the menu
LOCATE YMenuPosn, XMenuPosn
FOR Count = 1 TO UBOUND(MenuItem$)
IF Count = ChooseItem THEN COLOR 4, 2 ELSE COLOR 2, 4
PRINT MenuItem$(Count)
LOCATE CSRLIN, XMenuPosn
NEXT Count
RETURN
MoveUp:
IF ChooseItem = 1 THEN
ChooseItem = UBOUND(MenuItem$)
ELSE
ChooseItem = ChooseItem - 1
END IF
RETURN
MoveDown:
IF ChooseItem = UBOUND(MenuItem$) THEN
ChooseItem = 1
ELSE
ChooseItem = ChooseItem + 1
END IF
RETURN
