TC官方合作论坛

标题: 如何在线程中判断一个按钮被按下 [打印本页]

作者: 泥巴潭    时间: 2012-10-13 16:24
标题: 如何在线程中判断一个按钮被按下
线程程序()

如果(按钮被按下)
     语句.......
如果结束
线程结束



或者  我定义了一个全局变量    A     然后我在按钮_点击  事件中  给他赋值  =1  , 但是在线程中A的值好像还是没变?

线程程序()
如果(A==1)
     语句.......
如果结束
线程结束




作者: shine宝宝    时间: 2012-10-13 16:41
等待按键?
作者: 泥巴潭    时间: 2012-10-13 16:46
按钮被按下   不是某个按键被按下
作者: tianbao    时间: 2012-10-13 17:17
dddddddddd
作者: TC    时间: 2012-10-13 17:18
键值=键盘.等待按键()
返回是某个键的ascii码  可以根据这个判断
作者: 冷月无痕    时间: 2012-10-13 17:32
我实在是忍不住了......

线程程序()
如果(A==1)
     语句.......
如果结束
线程结束

你这个不叫赋值好不好,

线程程序()
A=1 //这个才是赋值
如果(A==1)
     语句.......
如果结束
线程结束

作者: tempbb1234    时间: 2012-10-13 19:01
有两种方法,第一种得到按钮文字,用文字来判断。
第二种是按钮的属性,按下后变灰,不能再按。来判断。也就是控件的有效和无效。
control.enable("启动",false)
control.enable("停止",true)
作者: 泥巴潭    时间: 2012-10-15 16:58
回复 6楼冷月无痕的帖子

你把我的意思理解错了  
我的意思是  A为全局变量   在一个按键点击事件中赋值  A=1  
             然后在 线程中判断  if(A==1)         
---------------------------------------------------------------
开始以为需要用到临界区 ,但是试了一下临界区  还是不行
作者: 冷月无痕    时间: 2012-10-15 17:07
回复 8楼泥巴潭的帖子

别好像,做了才知道,
我这里测试是可以的
  1. 循环(真)
  2. 标签.设置文本("标签3",转换.整型转字符型(a))
  3. 辅助.等待(20)
  4. 循环结束
复制代码

在热键里给a赋值,当热键按键下后 标签内容改变
  1. 功能 逻辑型 热键0_热键()
  2. a = 1
  3. 返回 真
  4. 功能结束
复制代码

作者: cylhb    时间: 2012-10-15 21:48
确定A是全局变量才可以...,并且线程的判断再你赋值语句执行之后才运行
作者: 泥巴潭    时间: 2012-10-16 09:40
回复 10楼cylhb的帖子

我是这样写的  帮我看一下为什么不能 在线程中判断A的值呢 ?


  1. int  全局变量A

  2. 功能 多线程程序()
  3. while
  4.      if(A == 1)
  5.       ........
  6.      endif
  7. enwhile
  8. 功能结束

  9. 功能  发送_点击()   //点击按钮
  10. A = 1
  11. 功能结束
复制代码

作者: zc1835429    时间: 2012-10-16 10:16
回复 1楼泥巴潭的帖子

你是想在线程中改变A的值还是要在线程中判断哪个按钮被点击呢?
如果是想要在线程中改变A的值,直接A=多少就可以的,不用加判断(A=100,类似这样)
如果是现在要判断哪个按钮被点击,可以在你需要的按钮下面写上对应的值,比如:
按钮1被单击
A=1
按钮2被单击
A=2
然后再判断A的值==多少
如果(A==1)
辅助.消息框("按钮1被按下")
如果结束
如果(A==2)
辅助.消息框("按钮2被按下")
如果结束
作者: 泥巴潭    时间: 2012-10-16 12:37
回复 12楼zc1835429的帖子

非常感谢!   问题解决了  。
我定义的全局变量是个bool 型的,不行。    我把它改成 int型的就可以了
作者: zc1835429    时间: 2012-10-16 14:34
回复 13楼泥巴潭的帖子

嗯 解决就好




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