ACTIVATE POPUP 命令
显示并且激活一个菜单。
ACTIVATE POPUP MenuName [AT nRow, nColumn]
[BAR nMenuItemNumber] [NOWAIT] [REST]
参数
MenuName
指定要激活的菜单的名称。
AT nRow, nColumn
指定菜单在屏幕或用户自定义窗口中显示的位置,行和列的坐标值为菜单左上角的坐标值。用此参数确定的位置优先于 DEFINE POPUP 命令的 FROM 参数指定的位置。
BAR nMenuItemNumber
指定菜单激活后自动选定的菜单项。例如,如果 nMenuItemNumber 为 2,则菜单激活后将自动选择第二个菜单项。如果省略参数 BAR nMenuItemNumber,或者 nMenuItemNumber 的数值大于菜单中的项数,则菜单激活后将选择第一个菜单项。
NOWAIT
指定程序运行时不等待用户选择菜单项,而是继续执行程序。
REST
如果 DEFINE POPUP 命令中带有 PROMPT FIELD 子句,则它所创建菜单的各项就是每个记录指定字段的内容。此菜单激活时,既使包含此字段的表的记录指针没有指向第一个记录,初始时还是选定第一个菜单项。
包含 REST 选项,则指定此菜单激活时选定与表中当前记录指针相对应的项。
备注
ACTIVATE POPUP 与 DEFINE POPUP 命令结合使用,用于创建菜单,而 DEFINE BAR 命令则用于创建菜单中的菜单项。
示例
这个示例在选择一个菜单标题后,用 ACTIVATE POPUP 命令激活菜单。当前系统菜单栏先用 set sysmenu save 命令存入内存,然后用 set sysmenu to 命令删除所有系统菜单标题。
用 define pad 命令创建两个新的系统菜单标题,并且用 define popup 命令为每一个菜单标题创建一个菜单,再用 define bar 命令为每个菜单创建建菜单项。当选择一个菜单标题后,on pad 命令通过 activate popup 子句激活相应的菜单。
从菜单中选择某个菜单项后,将执行 choice 过程。choice 过程将显示选定的菜单项名和对应菜单名。如果从 card info 菜单中选择 exit 菜单项,将恢复为原来的 Visual FoxPro 系统菜单。
*** 该程序名为 ACTIPOP.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 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 actipop 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, ''
DEFINE BAR 6 OF cardinfo PROMPT '\-'
DEFINE BAR 7 OF cardinfo PROMPT 'E\<xit';
KEY ALT+X, ''
ON SELECTION POPUP cardinfo;
DO choice IN actipop 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
评论