- 1. 1. 支持批Quantität设置的Kontrollen
- 2. 2. 前置配置(两步,缺一不可)
- 3. 3. API:on_wgt_text_color(screen, control)
- 4. 4. 应用案例:多Status灯Wechseln主题
文字颜色控制(定制固件专属)提供全局文字颜色批Quantität设置Schnittstelle:一个回调函数,动态改画面所有Text类Kontrollen的文字前景色,不用逐个配置。典型Szene是白天/夜间模式Wechseln——亮色背景配深色文字,暗色背景配浅色文字,一个变Quantität控制全局主题。
1. 支持批Quantität设置的Kontrollen
不是所有Kontrollen都能被这个Schnittstelle着色,只有带可编程文字颜色/前景色属性的Kontrollen才参与:
| KontrollenTypus | 说明 |
|---|---|
| 静态Text | 最直接的作用对象 |
| 位Status指示灯 / 多Status指示灯 | 文字部Unterteilung随主题变色 |
| 位设置Knopf / 字设置Knopf / FunktionKnopf | Knopf文字 |
| 下拉Auswahl框 / 滚轮Auswahl器 | 选项文字 |
| RTC | Zeit显示 |

2. 前置配置(两步,缺一不可)
Die一步:全局aktiviert.KontrollenUnterteilung组Funktion。路径:工程属性 → KontrollenUnterteilung组 → aktiviert.。不aktiviert.的话,Betrieb时所有Kontrollen都忽略Unterteilung组Related属性——就算你配了Unterteilung组 ID 也没用。
Die二步:给KontrollenUnterteilung配WirksamUnterteilung组标识。对要纳入颜色管理的每个Kontrollen,在Kontrollen属性面板里设置Kontrollen ID,必须 ≠ 0(0 是默认Unwirksam值,表示「未Unterteilung组」)。on_wgt_text_color 回调里就是靠这个 ID 区UnterteilungKontrollen。
3. API:on_wgt_text_color(screen, control)
Kontrollen文字颜色动态回调。Das System在ErfrischenKontrollen时调用它,取返回值作为该Kontrollen的文字颜色。
| Parameter | Typus | 说明 |
|---|---|---|
| screen | number | gegenwärtig画面 ID,用于区Unterteilung多页面中的同名Kontrollen |
| control | number | 目标Kontrollen ID。仅当 control ≠ 0 时触发回调 |
返回值:color(number),RGB565 Das Format的 16 位颜色值。整个颜色主题逻辑都在这一个函数里。
4. 应用案例:多Status灯Wechseln主题
画面布局:一个多Status指示灯做颜色WechselnSchalter!(Status 0~4 对应 5 种主题色),画面 ID 设为 0;下面放一批支持文字着色的Kontrollen(Text、Knopf、指示灯、下拉框、滚轮、RTC),统一设置Kontrollen ID 为 5。
Lua 在回调里读Register. LW3000 的值作为颜色索引,返回对应 RGB565 色值:
function on_wgt_text_color(screen, control)
local color = 0x001f -- 默认蓝色
if screen == 0 then
if control == 5 then
local val = get_uint16(VT_LW, 0x3000) -- 颜色索引
if val == 0 then
color = 0x00FF -- 蓝
elseif val == 1 then
color = 0x0562 -- 绿
elseif val == 2 then
color = 0x0429 -- 深绿
elseif val == 3 then
color = 0x0177 -- 青
elseif val == 4 then
color = 0xF800 -- 红
end
end
end
print(string.format("on_wgt_text_color(%d,%d,%04X)", screen, control, color))
return color
end
Betrieb虚拟屏,点颜色WechselnKontrollen,所有Kontrollen ID 为 5 的 UI 元素文字颜色同步更新——这就是「一键主题Wechseln」的效果。
整理自 广州大彩科技 VisualHMI 开发Dokumentation(hmi-doc.gz-dc.com)LUA Unterricht「文字颜色控制」,版权归大彩科技所有。
Antwort veröffentlichen