define bar 命令示例

下面的示例使用 define bar 在菜单上创建菜单项。首先用 set sysmenu save 将当前的系统菜单存入内存,然后用 set sysmenu to 将所有的系统菜单标题删除。先用 define pad 创建两个新的系统菜单标题,用 define popup 为每个菜单标题创建一个下拉菜单。然后用 define bar 创建每个菜单的菜单项。当选择一个菜单标题时,on pad 使用 activate popup 去激活相应的菜单。当从菜单上选择一个菜单项时,on selection popup 使用 prompt( ) 和 popup( ) 函数将菜单项号和菜单名传递给 choice 过程,choice 显示被选择的菜单项的提示符和包含该菜单项的菜单名。如果从 card info 中选择了 exit,则恢复最初的 visual foxpro 系统菜单。

*** 请将这个程序命名为 definbar.prg ***
clear
set sysmenu save
set sysmenu to
define pad convpad of _msysmenu prompt '\<conversions' color scheme 3 ;
key alt+c, ''
define pad cardpad of _msysmenu prompt 'card \<info' color scheme 3 ;
key alt+i, ''
on pad convpad of _msysmenu activate popup conversion
on pad cardpad of _msysmenu activate popup cardinfo
define popup conversion margin relative shadow 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 definbar with prompt( ), popup( )
define popup cardinfo margin relative shadow 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 '
define bar 6 of cardinfo prompt '\-'
define bar 7 of cardinfo prompt 'e\<xit '
on selection popup cardinfo;
do choice in definbar with prompt( ), popup( )
procedure choice
parameters mprompt, mpopup

wait window 'you chose ' + mprompt + ;
' from popup ' + mpopup nowait

if mprompt = 'exit'
set sysmenu to default
endif