下面的示例演示了一个层叠式子菜单系统。先创建一个名为 mnudinner 的带有两个菜单栏标题的菜单栏,每个标题都用 on pad 命令激活名为 popmaincourse
或 popdessert 的菜单。名为 popmaincourse 和 popdessert 的菜单分别使用三条 on bar 命令为其菜单项列表指定名为 popburger、poppizza 和 poppie 的附加菜单。还使用两条 on bar 命令为 popolives 和 poppie 菜单项指定了附加菜单。
选中一个菜单时,on selection popup all 将执行一个名为 yourchoice 的过程来激活一个窗口并显示该选择。根据 popup( ) 和 prompt( ) 所返回的菜单名和菜单项的内容(文本)来确定此次选择。
define window worder from 10,0 to 13,39
define menu mnudinner
define pad padone of mnudinner prompt '\<main course' key alt+m, ''
define pad padtwo of mnudinner prompt '\<dessert' key alt+d, ''
on pad padone of mnudinner activate popup popmaincourse
on pad padtwo of mnudinner activate popup dessert
define popup popmaincourse margin message ;
'we have burgers and pizza today'
define bar 1 of popmaincourse prompt '\<hamburgers'
define bar 2 of popmaincourse prompt '\<pizza'
on bar 1 of popmaincourse activate popup burger
on bar 2 of popmaincourse activate popup pizza
define popup burger margin message ;
'what would you like on your burger?'
define bar 1 of burger prompt '\<ketchup'
define bar 2 of burger prompt '\<mustard'
define bar 3 of burger prompt '\<onions'
define bar 4 of burger prompt '\<pickles'
define popup pizza margin message ;
'here are the available toppings'
define bar 1 of pizza prompt '\<anchovies'
define bar 2 of pizza prompt '\<green peppers'
define bar 3 of pizza prompt '\<olives'
define bar 4 of pizza prompt '\<pepperoni'
on bar 3 of pizza activate popup olives
define popup olives margin
define bar 1 of olives prompt '\<black' message 'black olives?'
define bar 2 of olives prompt '\<green' message 'green olives?'
define popup dessert margin message 'our dessert offerings'
define bar 1 of dessert prompt '\<brownies'
define bar 2 of dessert prompt '\<cookies'
define bar 3 of dessert prompt '\<ice cream'
define bar 4 of dessert prompt '\<pie'
on bar 4 of dessert activate popup pie
define popup pie margin message 'what kind of pie?'
define bar 1 of pie prompt '\<blueberry'
define bar 2 of pie prompt '\<cherry'
define bar 3 of pie prompt '\<peach'
define bar 4 of pie prompt '\<rhubarb'
on selection popup all do yourchoice
activate menu mnudinner
procedure yourchoice
activate window worder
clear
do case
case popup( ) = 'burger'
@ 0,0 say 'a ' + popup( ) + ' order:'
@ 1,0 say 'you ordered a burger with ' + lower(prompt( ))
case popup( ) = 'pizza'
@ 0,0 say 'a ' + popup( ) + ' order:'
@ 1,0 say 'you ordered a pizza with ' + lower(prompt( ))
case popup( ) = 'olives'
@ 0,0 say 'a ' + popup( ) + ' order:'
@ 1,0 say 'you ordered a pizza with ' ;
+ lower(prompt( )) + ' olives'
case popup( ) = 'dessert'
@ 0,0 say 'a ' + popup( ) + ' order:'
@ 1,0 say 'you ordered ' + lower(prompt( )) + ' for dessert'
case popup( ) = 'pie'
@ 0,0 say 'a ' + popup( ) + ' order:'
@ 1,0 say 'you ordered ' + lower(prompt( )) + ' pie'
endcase
wait window
deactivate window worder
return