TC官方合作论坛
标题:
发一个小小的误区,希望大家不要重蹈覆辙……
[打印本页]
作者:
rainshine
时间:
2014-1-16 10:36
标题:
发一个小小的误区,希望大家不要重蹈覆辙……
本帖最后由 rainshine 于 2014-1-16 10:38 编辑
咳咳!必须有动画啊!!我搞了好久才会录。。
---------------------------------
功能
渐变显示_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)
如果(消息==258)
如果(句柄==控件.获得句柄("编辑框0"))
如果(w参数==8)
返回 假
如果结束
如果(w参数>#4e00&&w参数<#9fa5)
返回 假
否则
返回 真
如果结束
如果结束
如果结束
返回 假
功能结束
刚开始写这段代码的时候,if语句是这样的:
如果(#4e00<w参数<#9fa5)
可经过调试总是效果不对,于是乎就开始查找原因,打断点看到前面一切正常,就是这个if这里判断不对。
又看了w参数的值,是在这个范围啊……
突然- -,灵光一闪,想起以前学c和pascal的时候的基础知识(打好基础很重要啊!C语言的好多基础性的东西都对我学tc有很大帮助),"<"运算符计算的结果是布尔型,真或者假,表示第一个操作数是否小于第二个操作数……因为结合性是从左向右且优先级相同,所以此表达式的计算过程剖析为:
1、计算
#4e00<w参数 返回的值是真或假 因tc把-1看作真,所以返回值是-1或0,假设这个表达式的值赋值给P
2、计算 P
<#9fa5 作为最终的结果 我们可以看一下P的取值范围是-1或0 所以P的值永远小于
#9fa5。所以不管P是多少,最终的计算结果永远是真(-1)。
【因为P的值是
#4e00<w参数,所以
不管这两个操作数是多少(#4e00是常量,所以在此处只有w参数控制表达式的值),最终的计算结果永远是真(-1)。】
好吧好吧 我赶脚我貌似有点学痴了……被数学和物理搞迷糊了,不等式和二次函数……0.0~
其实把表达式前半段赋值给一个变量,再用这个变量做第二步计算就能看出来咯。
就这样~希望大家一如既往地支持,另外,午安嘿嘿。
作者:
as128214121
时间:
2014-1-16 11:01
作者:
rainshine
时间:
2014-1-16 11:06
as128214121 发表于 2014-1-16 11:01
这个帖子肯定沉了、
作者:
aimei_8866999
时间:
2014-1-16 13:27
楼主好人,顶一下,以后这个弯路我不会走了
作者:
rainshine
时间:
2014-1-16 14:01
aimei_8866999 发表于 2014-1-16 13:27
楼主好人,顶一下,以后这个弯路我不会走了
啊哈谢谢啦。
作者:
qisi2012
时间:
2014-1-19 17:42
看到后请联系我(关于rainshlne)直接加我QQ 969327708
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1