3. 属性赋值

1. 控件属性、系统变量属性可以通过写脚本来读写。

2. 属性分为可读可写和只读,只读属性在脚本中不能赋值,否则编译会报错。是否可写请查看属性的详细描述。

3. 属性又分为数值变量和字符串变量两种,字符串变量只能赋值字符串类型的常量或变量,数值变量同理。

<1>控件属性

btn_attr

  • 脚本写法:

    • 有类名:[控件名].[类名].[属性名], 写法举例: b1.txt.str

    • 无类名:[控件名].[属性名] 写法举例: b1.x

  • 属性是否可写

    • 参考属性描述

<2>工程属性

cinfig_attr

  • 脚本写法: sys.dir sys.bl

  • 属性是否可写

    • 参考属性描述

3.1. 数值变量

支持的赋值符号: = += -= *= /= %= ++自增  --自减

// 正确写法
b1.x = 100;  //正确,给控件属性b1.x赋值
sys.bl = 100;//正确,给工程配置属性sys.bl赋值
b1.x = b1.x; //正确,给控件属性b1.x赋值

// 错误写法
b1.type = 10;        //错误,编译会报错!b1.type只读不写
b1.y = b1.txt.str;   //错误,编译会报错!字符串变量不能赋值给数值变量

// 正确写法(赋值符号举例)
b1.x += 10;  //执行后b1.x增加10
b1.x -= 10;  //执行后b1.x减少10
b1.x *= 10;  //执行b1.x * 10的结果再赋值给b1.x
b1.x /= 10;  //执行b1.x / 10的结果再赋值给b1.x, 注意:25/10等于2,只取整数
b1.x %= 10;  //执行b1.x % 10的结果再赋值给b1.x, 注意:25%10等于5,求余数
b1.x++;      //执行后b1.x增加1
b1.x--;      //执行后b1.x减少1

支持的运算符号: + - * / % -负号 ()括号 优先级参考:运算符说明

// 正确写法举例
b1.x = -10;
b1.x = 25 / 10;                  // 执行完b1.x等于2, 25/10等于2,只取整数
b1.x = 25 % 10;                  // 执行完b1.x等于5, 25%10等于5,求余数
b1.x = (50 + 100) / 10 - 5;      // 执行完结果等于10
b1.x *= (50 + 100) / 10 - 5;     // 假设b1.x本身为5,执行完后,b1.x = 10 * 5 即50

// 错误写法举例
b1.x = b1.x++;         // 错误!++、--符号只能单独作为一条语句
b1.x = b1.x > 100;     // 错误!赋值符号右边不支持关系运算符(> == != < >= <=)
b1.x = b1.x != 100;    // 错误!赋值符号右边不支持关系运算符(> == != < >= <=)
b1.x = b1.x && 100;    // 错误!赋值符号右边不支持逻辑运算符(&& ||)
b1.x = b1.x & 100;     // 错误!赋值符号右边不支持位运算符(& | ^ << >>)
b1.x = b1.x >> 2;      // 错误!赋值符号右边不支持位运算符(& | ^ << >>)

3.2. 字符串变量

支持的赋值符号: = += -=

// 正确写法举例
b1.txt.str = "123";      //字符串变量赋值
b1.txt.str += "456";     //b1.txt.str本身为"123" 执行后此语句后,为"123456"。(字符串拼接)
b1.txt.str = b2.txt.str; //将b2的文本字符串赋值给b1
b1.txt.str -= 2;         //b1.txt.str本身为"123" 执行后此语句后,为"1"。(字符串删除)
b1.txt.str = "123" - 2;  //字符串删除之后再赋值

// 错误写法举例
b1.txt.str = 123;        //错误!常量数值不能赋值给字符串变量
b1.txt.str = b2.x;       //错误!数值变量不能赋值给字符串变量
b1.txt.str -= "123";     //错误!字符串之间不支持删除运算

支持的运算符号: + -

// 正确写法举例
b1.txt.str = "123" + "456";      // 执行完,b1.txt.str等于"123456"
b1.txt.str = b2.txt.str + "123"; // 将"123"拼接到b2.txt最后,然后赋值给b1.txt
b1.txt.str = b2.txt.str - 2;     // 字符串删除2个字符之后再赋值

// 错误写法举例
b1.txt = ("123" + "456");        // 错误! 字符串型变量运算不支持括运算
b1.txt.str = 2 - "123";          // 错误!运算从左往右,不支持数值减去字符串

目前存在的字符串变量:

变量名称

解释

是否可写

b1.name

控件名称(所有控件)

只读

b1.txt.str

按钮文本值

可读可写

bl1.txt.str

自锁按钮文本值

可读可写

tsl1.txt.str

选择文本文本值

只读

tsl1.str

选择文本选中文本值

只读

ts1.txt.str

滚动文本文本值

可读可写

qr1.str

二维码文本值

可读可写

l1.txt.str

列表文本值

只读

l1.str

列表选中文本值

只读

val1.txt

变量的文本值

可读可写

a1.path

音频的路径(路径为外部TF卡时)

可读可写

v1.path

视频的路径(路径为外部TF卡时)

可读可写

提示

  • 字符串型变量有最最大长度size属性(参考控件的文本属性),当加法运算或赋值的长度大于size时,意味着丢弃多余的字符