下面的示例用 activate menu 命令显示并激活一个用户定义的菜单系统。当前系统菜单栏先用 set sysmenu save 命令保存在内存中,然后用 set sysmenu to 命令删除所有系统菜单标题。
用 define pad 命令创建两个菜单标题,并且用 define popup 为每个菜单标题创建下拉式菜单,然后用 define bar 命令在每个菜单上创建菜单项。当选中某个菜单标题后,on pad 命令使用 activate popup 子句激活相应菜单。activate menu
命令显示并激活这个选中的菜单栏。
选择菜单中的某菜单项后,开始执行 choice 过程,choice 过程显示了选择的菜单项名和包含此项的菜单名。
*** 此程序名为 actimenu.prg***
clear
set sysmenu save
set sysmenu to
on key label esc keyboard chr(13)
define menu example bar at line 1
define pad convpad of example prompt '\<conversions' color scheme 3 ;
key alt+c, ''
define pad cardpad of example prompt 'card \<info' color scheme 3 ;
key alt+i, ''
on pad convpad of example activate popup conversion
on pad cardpad of example activate popup cardinfo
define popup conversion margin relative color scheme 4
define bar 1 of conversion prompt 'ar\<ea' ;
key ctrl+e, '^e'
define bar 2 of conversion prompt '\<length' ;
key ctrl+l, '^l'
define bar 3 of conversion prompt 'ma\<ss' ;
key ctrl+s, '^s'
define bar 4 of conversion prompt 'spee\<d' ;
key ctrl+d, '^d'
define bar 5 of conversion prompt '\<temperature' ;
key ctrl+t, '^t'
define bar 6 of conversion prompt 't\<ime' ;
key ctrl+i, '^i'
define bar 7 of conversion prompt 'volu\<me' ;
key ctrl+m, '^m'
on selection popup conversion do choice in actimenu;
with prompt( ), popup( )
define popup cardinfo margin relative color scheme 4
define bar 1 of cardinfo prompt '\<view charges' ;
key alt+v, ''
define bar 2 of cardinfo prompt 'view \<payments' ;
key alt+p, ''
define bar 3 of cardinfo prompt 'vie\<w users' ;
key alt+w, ''
define bar 4 of cardinfo prompt '\-'
define bar 5 of cardinfo prompt '\<charges ' ;
key alt+c, ''
on selection popup cardinfo;
do choice in actimenu with prompt( ), popup( )
activate menu example
deactivate menu example
release menu example extended
set sysmenu to default
on key label esc
procedure choice
parameters mprompt, mpopup
wait window 'you chose ' + mprompt + ' from popup ' + mpopup nowait