define menu 命令示例

以下示例使用 define menu 命令创建用户自定义的菜单系统。首先使用 setsysmenu save 命令将当前系统菜单栏存入内存,然后使用 set sysmenu to 命令清除系统菜单标题。

使用 define menu 命令创建菜单栏,使用 define pad 命令创建两个菜单标题。define popup 为每个菜单标题创建菜单。define bar 创建在每个菜单上的菜单项。当选择菜单标题时,on pad 使用 activate popup 激活相应的菜单。

activate menu 显示并激活菜单栏。

当从菜单中选取菜单项时,执行 choice 过程。choice 显示已选取菜单项的名称和包含菜单项的菜单名。

*** name this program defimenu.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 defimenu 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 '
on selection popup cardinfo;
   do choice in defimenu 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