|
|
本帖最后由 lvkejun 于 2026-3-6 13:42 编辑
--开发环境visualTFT+LUA
--下面代码中涉及控件ID3,为Text_Display,使用弹出系统键盘输入,字符串会被转为大写
--如果文本字符串被写进内存,就会发生:原始输入字符串,会被系统在画面更新完成后,重新回写控件的情况(即如果字符串有小写,恢复成小写)。
--以下是on_control_notify中的部分代码
dev_code = string.upper( get_text(DEV_PAR_SCREEN,3) ) --转大写
dev_code = dev_code .. string.rep('0', math.max(0, 6 - #dev_code)) --不足6位,用'0'补足
set_text(DEV_PAR_SCREEN,3,dev_code)
for i = 1, 6
do
eeprom_data[5 + i] = string.byte(dev_code:sub(i,i))
end
write_flash(0,eeprom_data)
flush_flash()
flush_nor()
--系统初始化时回写控件
--on_init中的部分代码
function on_init()
eeprom_data = read_flash(0, 13)
-- 获取设备编码
for i = 6,11
do
dev_code = dev_code..string.char(eeprom_data)
end
set_text(DEV_PAR_SCREEN,3,dev_code )
end
--现在问题:画面完成后,控件文本会被系统回写成输入时的小写状态字符串,怎么解决?
|
|