常量的申请和使用
编程所用到的数值非常多,在调用函数或者实现某个功能时,需要定义某个数值代表什么含义。
调用API函数都会定义每项参数可以使用哪些数值,返回值的数值又代表什么含义,由于这些数值太多太难记。
极语言根据这些数值对应作用进行中文命名,看到这些中文名称就能理解它的使用,常量的名称其实是代表某个数值。
很多时候这些数值是某些选项的组合,比如信息框的图标样式就是多种组合,例如: [确定取消 + 问号图标]。
可以看出是“确定”“取消”两个按钮加上问号图标的组合,这里为什么要用中括号呢?
中括号是在编译时候对括号里的运算表达式进行计算,最终得到一个数值。
不加中括号就不计算,而是编译成运算指令,在程序运行的时候再进行运算处理。
常量通常都是数值,都是可以提前进行计算。所以使用常量或者已知数字进行进行时要加中括号
中括号里面可以嵌套中括号,但是不要嵌套小括号,遇到小括号就会编译成运算指令。
中括号表达式可以使用的运算符号有:+加、-减、*乘、/除、|或、&与、!非、^异或、~乘方。
其中!非运算也就是按位取反,如:!1=-2。~乘方只能在中括号表达式里有效。示例:
常量 样式=[6+[35-12]*150-[60/12]];注意这种计算不是按先乘除后加减进行运算
需要优先计算就要多加一层中括号,通常使用中括号的表达式都不会太复杂,所以是按顺序优先
常量的标准写法如下:
常量 窗口创建 = 1; 常量 程序关闭 = 2; 常量 窗口移动 = 3; 常量 窗口缩放 = 5; 常量 窗口激活 = 6; 常量 获得焦点 = 7; 常量 失去焦点 = 8;
常量也跟变量一样支持使用逗号连续申请:
常量 确定取消=1,中止重试=2,是否取消= 3,弹出是否=4,重试取消=5;
以上两种常量数值是按十进制连续增加的数值,这些数值不能相互叠加使用
但可以和更高位的值进行相加,如:[确定取消 + 问号图标]
常量 错误图标=0x10,问号图标=0x20,惊叹图标=0x30,信息图标=0x40,用户图标=0x80;
十六进制的每一位数字0到F占用四位,上面这些图标的低位数都是0,而按钮样式的数值都小于15,
相加不会影响高位值,如: [确定取消 + 问号图标] 等同于0x21
再看下面这些常量数值:
常量 保持尺寸 = $0001; 常量 保持位置 = $0002; 常量 保持层序 = $0004; 常量 保持图像 = $0008; 常量 保持状态 = $0010; 常量 增加边框 = $0020; 常量 显现窗口 = $0040; 常量 隐藏窗口 = $0080; 常量 清空窗口 = $0100; 常量 不变顺序 = $0200; 常量 防止同步 = $2000; 常量 防止死锁 = $4000;
这些数值的每个位都是只有1 2 4 8这四种数值,它们的二进制数值分别是: 0001 0010 0100 1000
如果十六进制再高一位10 20 40 80这四个数值,它们的二进制数值分别是: 00010000 00100000 01000000 10000000
这些数值都是在不同的二进制位是1,其它位是0,它们相加只用把相应位的二进制数写成1即可,跟或运算的结果一致
0001 (1)和0010 (2) 相加是0011也就是3,所以常量值组合经常使用或运算,如: [确定取消 | 问号图标]。
[保持尺寸 | 保持位置 | 保持层序 | 保持图像 | 保持状态 | 增加边框 | 显现窗口 | 隐藏窗口] 结果就是 0xFF
[保持尺寸 | 保持位置 | 保持层序 | 保持图像 | 保持状态 | 增加边框 | 显现窗口 | 隐藏窗口] 结果就是 0xFF