TC官方合作论坛

标题: 问个新手问题,如何判断一个变量是否产生变化 [打印本页]

作者: zsconverse    时间: 2014-9-7 14:07
标题: 问个新手问题,如何判断一个变量是否产生变化
本帖最后由 zsconverse 于 2014-9-7 14:11 编辑

比如说:
    A = 编辑框.获得文本("编辑框0”)
我的需要是:当A值发生变化的时候  执行后面的代码
该如何做

我试过这样:
循环(真)
   A = 编辑框.获得文本("编辑框0”)
   辅助.等待(300)
   B = 编辑框.获得文本("编辑框0”)
   如果(A!=B)
         //执行代码
  如果结束
循环结束

然后用线程开启这个功能。  结果是程序会卡在B这一行。


作者: mfkyniusr    时间: 2014-9-7 14:31
循环(真)
A = 编辑框.获得文本("编辑框0”)
//假设A的赋值是:"10"
如果(A==10)
//执行代码
如果结束
循环结束
作者: zsconverse    时间: 2014-9-7 14:37
mfkyniusr 发表于 2014-9-7 14:31
循环(真)
A = 编辑框.获得文本("编辑框0”)
//假设A的赋值是:"10"

我需要  当编辑框内容变化的时候   执行代码
并且是内容每次改变都会执行一次代码
作者: mfkyniusr    时间: 2014-9-7 14:41
要变化的值是固定的吗?还是说不管变化什么值都执行同样的代码。你要先搞清楚
作者: zsconverse    时间: 2014-9-7 14:47
mfkyniusr 发表于 2014-9-7 14:41
要变化的值是固定的吗?还是说不管变化什么值都执行同样的代码。你要先搞清楚 ...

不管变化什么都执行同样的代码
而且我不知道它何时会变化   也不知道它的初始值
作者: sziamchl    时间: 2014-9-7 15:02
本帖最后由 sziamchl 于 2014-9-7 15:13 编辑

这还不简单,添加编辑框0的内容改变事件,不懂看图如下面代码可以控制编辑框0的值最多2位数字
以防代码出错设置编辑框0  数字属性为True

功能 编辑框0_内容改变()
数字=类型.转整型(编辑框.获得文本("编辑框0"))
    如果(数字>99)
        数字=类型.取整(数字/10)
        编辑框.设置文本("编辑框0",数字)
    如果结束


功能结束


作者: zsconverse    时间: 2014-9-7 15:11
sziamchl 发表于 2014-9-7 15:02
这还不简单,添加编辑框0的内容改变事件,不懂看图

谢谢。懂了  
但是如果是其他事件改变呢?
比如某个内存地址的值发生变化时,或者某点颜色变化
我需要获得这个值,然后存进编辑框,再做内容改变事件吗?
感觉不需要这么麻烦的吧
作者: mfkyniusr    时间: 2014-9-7 15:14
zsconverse 发表于 2014-9-7 14:47
不管变化什么都执行同样的代码
而且我不知道它何时会变化   也不知道它的初始值 ...

功能 检测()
    循环(真)
        B=编辑框.获得文本("编辑框0")
        调试输出("第二次"&B)
        如果(A!=B)
            调试输出("如果里面的"&A)
            辅助.消息框("执行代码了")
        如果结束
    循环结束
功能结束
功能 按钮0_点击()
    //这里添加你要执行的代码
    A=编辑框.获得文本("编辑框0")
    调试输出("第一次"&A)
    线程.开启("暴风影音.检测","")
功能结束
作者: zsconverse    时间: 2014-9-7 15:26
mfkyniusr 发表于 2014-9-7 15:14
功能 检测()
    循环(真)
        B=编辑框.获得文本("编辑框0")

按照你的代码  
编辑框内容变到B之后   会一直执行
因为A  一直不等于B

我需要的是 内容改变一次  执行一次  
不改变则不执行
作者: mfkyniusr    时间: 2014-9-7 15:35
//检测功能少了一行。。。。



功能 检测()
     循环(真)
         B=编辑框.获得文本("编辑框0")
         调试输出("第二次"&B)
         如果(A!=B)
             调试输出("如果里面的"&A)
             辅助.消息框("执行代码了")
             A=编辑框.获得文本("编辑框0")
         如果结束
     循环结束
功能结束
功能 按钮0_点击()
     //这里添加你要执行的代码
     A=编辑框.获得文本("编辑框0")
     调试输出("第一次"&A)
     线程.开启("暴风影音.检测","")
功能结束



作者: zsconverse    时间: 2014-9-7 15:36
sziamchl 发表于 2014-9-7 15:02
这还不简单,添加编辑框0的内容改变事件,不懂看图如下面代码可以控制编辑框0的值最多2位数字
以防代码出错 ...

麻烦看下我1楼的代码问题出在哪
能生成exe文件,但是执行起来就提示  程序暂停在83行
作者: sziamchl    时间: 2014-9-7 15:41
zsconverse 发表于 2014-9-7 15:36
麻烦看下我1楼的代码问题出在哪
能生成exe文件,但是执行起来就提示  程序暂停在83行 ...

你1楼代码哪有83行?具体是指哪一行?
作者: zsconverse    时间: 2014-9-7 15:46
sziamchl 发表于 2014-9-7 15:41
你1楼代码哪有83行?具体是指哪一行?

其他行没显示出来   
就是B = 编辑框.获得文本()那一行
作者: sziamchl    时间: 2014-9-7 15:51
zsconverse 发表于 2014-9-7 15:46
其他行没显示出来   
就是B = 编辑框.获得文本()那一行

不知道你编辑框的值是如何发生变化的?是你自己手动改的吗?
如果这样,但A和B取值之前简隔300毫秒时间太短了吧?改为5000试下
作者: zsconverse    时间: 2014-9-7 16:06
sziamchl 发表于 2014-9-7 15:51
不知道你编辑框的值是如何发生变化的?是你自己手动改的吗?
如果这样,但A和B取值之前简隔300毫秒时间太 ...

其实不是编辑框,  A 值是我获取一个指定内存基址的一个值
改为5000的话  可能这中间改变了很多次,而没有捕获到内存改变了
作者: zsconverse    时间: 2014-9-7 16:20
mfkyniusr 发表于 2014-9-7 15:35
//检测功能少了一行。。。。

[attach]17227[/attach]
不知道 我的为什么会卡在红色那一句
我没有弹消息框和 调试输出的代码

作者: sunlizhu    时间: 2014-9-11 07:57

这个帖子得顶




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1