菜单

7.4 控件权限

下载

控件权限根据寄存器条件控制显示与触摸。本节使用权限范例的单条件、AND、OR 和三条件逻辑,观察按钮是否出现、计数是否增加。

核心功能

  • 条件不成立时隐藏控件,或保留显示并禁止触摸。
  • 两个条件使用 AND/OR 组合。
  • 三个及以上条件由简短 Lua 输出一个允许标志。

1. 属性说明

选中字设置按钮,展开 安全设置 → 控件权限。下图为“双条件 AND”。

控件权限完整设置:条件、附加条件、无权限行为及用户等级
序号 属性 本例 作用
1 启用 是 开启条件判断。
2 条件地址 LW1100 读取条件 A。
3 比较 == 支持 ==、!=、≤、≥、<、>、IN、OUT。
4 值 1 本例要求 A 等于 1。
5 附加条件 → 启用 AND AND 要求两项都成立;OR 要求至少一项成立;不启用时仅判断主条件。
6 附加条件地址 LW1101 读取条件 B。
7 附加比较 == 第二项的比较关系。
8 附加值 1 本例要求 B 等于 1。
9 无权限时 隐藏控件 可选择隐藏控件或禁止触控。
10 用户等级 → 启用 否 需要登录分级时,按 7.3 登录权限 另行设置。

位置、字体、图片和触摸伴音等公共属性见 第三章 控件。

IN/OUT 用于区间判断;选择后设置下限、上限。普通比较使用单个“值”。

2. 应用

2.1 地址与条件

打开 SeasideAccess.apustai,编译、运行,进入“条件权限”画面。

地址 用途
LW1100、LW1101、LW1102 条件 A、B、C,顶部按钮在 0/1 间切换。
LW1103 Lua 输出的三条件允许标志。
LW1120~LW1123 四个按钮各自的计数值。
按钮 允许条件 不满足时
单条件 A=1 隐藏
双条件 AND A=1 且 B=1 隐藏
双条件 OR A=1 或 B=1 保持显示,禁止触摸
三个条件 A、B、C 均为 1 保持显示,禁止触摸

四个“计数 +1”按钮的业务动作相同,仅权限条件不同。隐藏时按钮不可见;禁止触摸时按钮仍显示,但点击不增加计数。

2.2 单条件与 AND

单条件按钮启用权限,设置 LW1100 == 1,关闭附加条件,选择“隐藏控件”。AND 按钮按第 1 节增加 LW1101 == 1。

A B 单条件 AND
0 0 隐藏 隐藏
1 0 可操作 隐藏
0 1 隐藏 隐藏
1 1 可操作 可操作

2.3 OR 与禁止触控

将附加条件改为 OR,“无权限时”改为 禁止触控。

OR 条件与禁止触控设置,编号含义同第 1 节

A 或 B 任意一个为 1 时,按钮可点击;两者都为 0 时,按钮保持可见但计数不变。

2.4 三个条件

三个条件按钮读取 LW1103 == 1,关闭附加条件,选择“禁止触控”。Lua 每次运行时计算结果:

lua 复制代码
local LW = 1

function on_run(screen)
    if screen ~= 1 then return end
    local allowed = get_uint16(LW, 0x1100) == 1
        and get_uint16(LW, 0x1101) == 1
        and get_uint16(LW, 0x1102) == 1
    set_uint16(LW, 0x1103, allowed and 1 or 0)
end

代码与下载工程一致,仅使用 LW。已有 on_run 时,把判断合入原回调,避免重复定义。

2.5 运行预览

依次开启 A、B、C,再关闭 A,对照按钮显示和计数变化:

单条件、AND、OR 与三条件联动的实际操作
A / B / C 可操作的按钮
1 / 0 / 0 单条件、OR
1 / 1 / 0 单条件、AND、OR
1 / 1 / 1 四个按钮全部可操作
0 / 1 / 1 仅 OR

3. 示例下载

登录与控件权限工程 · 本章背景图

权限条件控制本控件的界面操作;设备启停等关键条件仍应在设备控制逻辑中判断。

背景照片:Maldive97.jpg,Samoano, CC BY-SA 3.0。本章裁切、调色后的背景沿用该许可;界面排版与按钮为原创。

最近修改: 2026-11-06Powered by