ACTIVATE POPUP 命 令

ACTIVATE POPUP 命 令 - 图1显示并且激活一个菜单

语 法

ACTIVATE POPUP MenuName

[AT nRow , nColum n ] [BAR nMenuItemNumber ] [NOWAIT]

[REST]

参 数 描 述

MenuName

ACTIVATE POPUP 命 令 - 图2指 定 要 激 活 的 菜 单 的 名 称

AT nRow , nColumn

ACTIVATE POPUP 命 令 - 图3ACTIVATE POPUP 命 令 - 图4ACTIVATE POPUP 命 令 - 图5指 定 菜 单 在 屏 幕 或 用 户 自 定 义 窗 口 中 显 示 的 位 置 行 和 列 的 坐 标 值 为 菜 单 左上 角 的 坐 标 值 用 此 参 数 确 定 的 位 置 优 先 于 DEFINE POPUP 命 令 的 FROM 参 数 指 定 的 位 置

BAR nMenuItemNumber

ACTIVATE POPUP 命 令 - 图6ACTIVATE POPUP 命 令 - 图7ACTIVATE POPUP 命 令 - 图8ACTIVATE POPUP 命 令 - 图9ACTIVATE POPUP 命 令 - 图10ACTIVATE POPUP 命 令 - 图11ACTIVATE POPUP 命 令 - 图12指 定 菜 单 激 活 后 自 动 选 定 的 菜 单 项 例 如 如 果 nMenuItemNumber 为 2 则菜 单 激 活 后 将 自 动 选 择 第 二 个 菜 单 项 如 果 省 略 参 数 B A R nMenuItemNumber 或 者 nMenuItemNumber 的 数 值 大 于 菜 单 中 的 项 数 则 菜单 激 活 后 将 选 择 第 一 个 菜 单 项

NOWAIT

ACTIVATE POPUP 命 令 - 图13ACTIVATE POPUP 命 令 - 图14指 定 程 序 运 行 时 不 等 待 用 户 选 择 菜 单 项 而 是 继 续 执 行 程 序

REST

ACTIVATE POPUP 命 令 - 图15ACTIVATE POPUP 命 令 - 图16ACTIVATE POPUP 命 令 - 图17ACTIVATE POPUP 命 令 - 图18ACTIVATE POPUP 命 令 - 图19如 果 DEFINE POPUP 命 令 中 带 有 PROMPT FIELD 子 句 则 它 所 创 建 菜 单 的各 项 就 是 每 个 记 录 指 定 字 段 的 内 容 此 菜 单 激 活 时 即 使 包 含 此 字 段 的 表 的记 录 指 针 没 有 指 向 第 一 个 记 录 初 始 时 还 是 选 定 第 一 个 菜 单 项

ACTIVATE POPUP 命 令 - 图20ACTIVATE POPUP 命 令 - 图21包含 REST 选项 则指定此菜单激活时选定与表中当前记录指针相对应的项

说 明

ACTIVATE POPUP 命 令 - 图22ACTIVATE POPUP 命 令 - 图23ACTIVATE POPUP 命 令 - 图24ACTIVATE POPUP 与 DEFINE POPUP 命令结合使用 用于创建菜单 而 DEFINE BAR 命令则用于创建菜单中的菜单项

示 例

ACTIVATE POPUP 命 令 - 图25ACTIVATE POPUP 命 令 - 图26这个示例在选择一个菜单标题后 用 ACTIVATE POPUP 命令激活菜单 首先 用 SET

ACTIVATE POPUP 命 令 - 图27ACTIVATE POPUP 命 令 - 图28SYSMENU SAVE 命令 将 当前系统菜单栏存入内存 然后用 SET SYSMENU TO 命令删除所有系统菜单标题

ACTIVATE POPUP 命 令 - 图29用 DEFINE PAD 命令创建两个新的系统菜单标题 并且用 DEFINE POPUP 命令为每

ACTIVATE POPUP 命 令 - 图30ACTIVATE POPUP 命 令 - 图31ACTIVATE POPUP 命 令 - 图32ACTIVATE POPUP 命 令 - 图33一个菜单标题创建一个菜单 再用 DEFINE BAR 命令为每个菜单创建菜单项 当选择一个菜单标题后 ON PAD 命令通过 ACTIVATE POPUP 子句激活相应的菜单

ACTIVATE POPUP 命 令 - 图34ACTIVATE POPUP 命 令 - 图35ACTIVATE POPUP 命 令 - 图36ACTIVATE POPUP 命 令 - 图37ACTIVATE POPUP 命 令 - 图38从菜单中选择某个菜单项后 将执行 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, ''

ACTIVATE POPUP 命 令 - 图39ACTIVATE POPUP 命 令 - 图40DEFINE PAD cardpad OF _MSYSMENU PROMPT 'Card \<Info' COLOR SCHEME 3 ; KEY ALT+I, ''

ON PAD convpad OF _MSYSMENU conversion

ON PAD cardpad OF _MSYSMENU 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' ; KE Y 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

请 参 阅

ACTIVATE POPUP 命 令 - 图41ACTIVATE POPUP 命 令 - 图42CLEAR POPUPS , CREATE MENU , DEACTIVATE POPUP , DEFINE BAR , DEFINE POPU P , HIDE POPU P , MOVE POPUP , ON SELECTION POPUP , POP POPU P , POPUP ACTIVATE POPUP 命 令 - 图43 , PROMPT ACTIVATE POPUP 命 令 - 图44 , PUSH POPU P , SHOW POPUP