|
原帖由 junyee 于 2008-10-18 09:36 发表
\\ START
_SUB SHELL,W180H220,请勾选,,,
LABE LB1,L5T5W150H17,请勾选
CHEK NUMA,L5T40W70H20,数字 1,call ReadCheck,1
CHEK NUMB,L5T65W70H20,数字 2,call ReadCheck,1
CHEK NUMC,L5T90W70H20,数字 4,call ReadCheck,1
CHEK NUMD,L75T40W70H20,数字 8,call ReadCheck,1
CHEK NUME,L75T65W70H20,数字 16,call ReadCheck,1
ITEM BT1,L15T120W60H18,应用,MESS %CK1% + %CK2%=%BN% \n %BN% + %CK3% =%BNT% \n %BNT% + %CK4% =%BNTP% \n%BNTP% + %CK5% =%BNTPO% @CALC #OK
CALL ReadCheck
PBAR Pbar1,L5T175W150H10,0
_END
_SUB ReadCheck
FIND $%NUMA.Check%=1,ENVI CK1=1!ENVI CK1=0
FIND $%NUMB.Check%=1,ENVI CK2=2!ENVI CK2=0
FIND $%NUMC.Check%=1,ENVI CK3=4!ENVI CK3=0
FIND $%NUMD.Check%=1,ENVI CK4=8!ENVI CK4=0
FIND $%NUME.Check%=1,ENVI CK5=16!ENVI CK5=0
CALC BN=%CK1% + %CK2%
CALC BNT=%BN% + %CK3%
CALC BNTP=%BNT% + %CK4%
CALC BNTPO=%BNTP% +%CK5%
_END
CALL @SHELL
\\ END
1、_SUB 是定义窗口命令,在 _SUB 与其匹配的 _END 命令之间,窗口及其控件还没生成,所有与窗口及其控件的变量均未初始化,
所以上面红色一行 CALL ReadCheck 实际没有意义(NUMx.Check 均未初始化,int 类型可能为0,double 类型不确定)。
2、CALC 命令有前导符"#",可以指定数据按何种类型来处理,你上面的所有数据均应按 int 类型数据处理。
3、行首注释符应是"/"不是"\",你用错了,虽不影响使用。
修改如下,去掉 _SUB 与 _END 之间的 CALL ReadCheck ,数值变量按 int 类型处理,在 CALL 窗口之前将变量初始化:
_SUB InitVarule
TEAM ENVI CK1=1|ENVI CK2=1|ENVI CK3=1| ENVI CK4=1|ENVI CK5=1
CALC #BN=%CK1% + %CK2%
CALC #BNT=%BN% + %CK3%
CALC #BNTP=%BNT% + %CK4%
CALC #BNTPO=%BNTP% +%CK5%
_END
_SUB DoBT1
MESS %CK1%+%CK2%=%BN%\n%BN%+%CK3%=%BNT%\n%BNT%+%CK4%=%BNTP%\n%BNTP%+%CK5%=%BNTPO%@CALC #OK
_END
_SUB SHELL,W180H220,请勾选,,,
LABE LB1,L5T5W150H17,请勾选
CHEK NUMA,L5T40W70H20,数字 1,call ReadCheck,1
CHEK NUMB,L5T65W70H20,数字 2,call ReadCheck,1
CHEK NUMC,L5T90W70H20,数字 4,call ReadCheck,1
CHEK NUMD,L75T40W70H20,数字 8,call ReadCheck,1
CHEK NUME,L75T65W70H20,数字 16,call ReadCheck,1
ITEM BT1,L15T120W60H18,应用,CALL DoBT1
PBAR Pbar1,L5T175W150H10,0
_END
_SUB ReadCheck
FIND $%NUMA.Check%=1,ENVI CK1=1!ENVI CK1=0
FIND $%NUMB.Check%=1,ENVI CK2=2!ENVI CK2=0
FIND $%NUMC.Check%=1,ENVI CK3=4!ENVI CK3=0
FIND $%NUMD.Check%=1,ENVI CK4=8!ENVI CK4=0
FIND $%NUME.Check%=1,ENVI CK5=16!ENVI CK5=0
CALC #BN=%CK1% + %CK2%
CALC #BNT=%BN% + %CK3%
CALC #BNTP=%BNT% + %CK4%
CALC #BNTPO=%BNTP% +%CK5%
_END
CALL InitVarule
CALL @SHELL
[ 本帖最后由 lxl1638 于 2008-10-18 13:17 编辑 ] |
|