TC官方合作论坛

 找回密码
 立即注册
查看: 4360|回复: 29
打印 上一主题 下一主题

[讨论] 再谈界面控件之按钮与热键

[复制链接]
跳转到指定楼层
楼主
发表于 2012-4-23 22:29:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近还是有不少人在问TC热键的设置方法,今天在这里发一贴,谈谈自己的个人思路,就不一一回帖说明了!
TC的界面设计虽然有一些瑕疵,也许有些人觉得很麻烦,有些人觉得很方便,有些人觉得很漂亮,而有些人却又觉得很土!
所谓众口难调,但是个人认为对于初学者来说,TC的界面设计无疑是很容易上手的!前提是你掌握了方法!下面是本人的几个按钮及热键的设计思路,仅供大家参考!

一,按钮设置只开启一次
有童鞋为了使点击按钮只执行一次开启线程(避免线程重复开启),用设置全局变量来控制,或者是用判断线程句柄是否为0来控制,其实还有一种更简单,更直观的方法,那就是用控件的有效命令来设置!代码如下:
  1. 功能 按钮0_点击()
  2. 线程句柄=线程.开启("我的程序.主线程")
  3. 控件.有效("按钮0",假)
  4. 返回 真
  5. 功能结束
复制代码
效果图:
点击前

点击后

看效果图,当我们点击按钮开启线程以后,按钮控件变灰色,也就是失效了,就防止了再次开启线程,更让用户直观的看到,脚本只能开始一次

二,热键的设置
我们先在脚本界面上放个热键控件,这时这个热键控件就像个编辑框,里面有个无字!


然后我们单击它,右边的工具栏就会变成属性栏,我们就可以在属性栏里设置该热键的属性,首先是热键名称,默认是"热键0",当然如果你放的是第二个热键控件,那么默认是"热键1",以此类推!这个名称我们可以自定义的,只要不和别的控件名相同就可以,比如"开始热键"!




然后我们还可以设置热键键值,这个属性相当于默认的热键键值,点击这个属性框最右边的"...",就会弹出一个输入框,我们点击上面的编辑框,看到一个光标在编辑框闪动了没?然后按下我们需要设置为热键的键盘按键,比如"F9",那么编辑框里就会出现"F9"字样,点击确定,该热键的默认键值就设置好了!



很多童鞋到了这一步就以为热键就设置好了,所以就会出现设置的热键没反应的问题!那是因为我们没有设置热键的响应事件!

从上图我们可以看到,热键控件一共有两个响应事件,1.热键,2.失去焦点
点击热键的下拉标记,我们可以看到"<添加>......."字样,点击它就会转到代码界面,并自动生成一个热键函数:
  1. 功能 开始热键_热键()
  2. //这里添加你要执行的代码

  3. 返回 真
  4. 功能结束
复制代码
然后我们在这个函数里写的代码,就是当脚本运行后,我们按下设置的热键脚本所执行的代码了!
这里需要注意的是,TC的控件有个一个特点,所有控件的响应事件都需要这样添加,如果你只是复制粘贴代码,而没有添加事件,那么控件是无法响应事件的,也就是无效的!
那么什么是"失去焦点"事件呢?当我们运行脚本以后,点击热键控件,热键编辑框里就会有个光标在闪动,这时我们可以按下别的键盘按键,编辑框内的字符就会改变成我们按下的键盘按键,比如"A",这时,焦点就是在热键控件上的,当我们点击脚本界面上别的地方时,热键编辑框里闪动的光标就会消失了,也就是热键控件"失去焦点"了,那么"失去焦点"事件就开始响应了!看到这里大家都应该知道了,一般这个"失去焦点"事件都是为了让使用脚本的用户自定义热键而设置的!
  1. 功能 开始热键_失去焦点()
  2. //这里添加你要执行的代码
  3. 热键.销毁("开始热键")
  4. 热键.注册("开始热键")
  5. 返回 真
  6. 功能结束
复制代码
当然,如果你不让用户自定义热键,这个事件你也可以不添加!

三,多功能按钮
什么是多功能按钮与热键呢?比如,当脚本运行以后,我们第一次点击一个按钮,那么脚本开启线程,之后再次点击该按钮,线程暂停,再次点击,线程恢复,再点,暂停,再点,恢复......
我是用按钮上显示的文本来实现这个功能的,当然你也可以用别的方法!
效果图


(额,不知道为什么,"开始挂机(F9)"的图片上传不了,大家知道该按钮一开始设置的文本为:"开始挂机(F9)"就好了!按钮名定义的是"开始挂机")
2.1版TC代码如下:
  1.     功能 开始挂机_点击()
  2.     内容=按钮.获得文本("开始挂机")
  3.     如果 (内容=="开始挂机(F9)")
  4.     按钮.设置文本("开始挂机","暂停挂机(F9)")
  5.     主线程句柄=线程.开启("我的程序.主线程")
  6.     如果结束
  7.     如果(内容=="暂停挂机(F9)")
  8.     按钮.设置文本("开始挂机","恢复挂机(F9)")
  9.     线程.暂停(主线程句柄)
  10.     如果结束
  11.     如果(内容== "恢复挂机(F9)"
  12.     按钮.设置文本("开始挂机","暂停挂机(F9)")
  13.     线程.恢复(主线程句柄)
  14.     如果结束
  15.     返回 真
  16.     功能结束


  17. 等3.0版TC出来以后,我们可以用"选择"命令来简化代码:
复制代码
   功能 开始挂机_点击()
    内容=按钮.获得文本("开始挂机")
    选择 (内容)
    条件 "开始挂机(F9)":
    按钮.设置文本("开始挂机","暂停挂机(F9)")
    主线程句柄=线程.开启("我的程序.主线程","")
    条件 "暂停挂机(F9)":
    按钮.设置文本("开始挂机","恢复挂机(F9)")
    线程.暂停(主线程句柄)
    条件 "恢复挂机(F9)":
    按钮.设置文本("开始挂机","暂停挂机(F9)")
    线程.恢复(主线程句柄)
    选择结束
    返回 真
    功能结束
四,热键控制按钮
其实很简单,我们只要在热键的函数里写上调用按钮函数的命令,就可以让热键和按钮的功能一致!

  1. 功能 开始热键_热键()
  2. 我的程序.开始挂机_点击()
  3. 返回 真
  4. 功能结束
复制代码

最后再次提醒大家,界面控件的响应事件一定要点击控件属性里的事件添加到代码中,如果你只是复制粘贴了代码,而没有添加事件,控件是无效的哦!
好了,关于按钮和热键今天就谈到这里,希望对大家的脚本制作有点帮助!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

沙发
发表于 2012-4-23 22:44:52 | 只看该作者
:smoke 高手就是高手
回复 支持 反对

使用道具 举报

板凳
发表于 2012-4-23 23:55:06 | 只看该作者
很好很透彻,我也发现很多人会搞混...这是一个明灯
回复 支持 反对

使用道具 举报

地板
发表于 2012-4-24 08:19:16 | 只看该作者
新手小白必须顶的贴
回复 支持 反对

使用道具 举报

5#
发表于 2012-4-24 09:14:38 | 只看该作者
:D   必须的支持!
回复 支持 反对

使用道具 举报

6#
发表于 2012-4-24 23:45:20 | 只看该作者
额 有点麻烦了
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2012-4-24 23:47:31 | 只看该作者
回复 6楼龙归_莫言的帖子

很麻烦么?其实不会,麻烦表示更自由,更灵活!
回复 支持 反对

使用道具 举报

8#
发表于 2012-4-25 08:56:42 | 只看该作者
又是一个扯东扯西的家伙.说注册热键的扯那么多,你让新手怎么看得明白?
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2012-4-25 15:39:33 | 只看该作者
回复 8楼53988235的帖子

额 我说过这贴只说注册热键?
回复 支持 反对

使用道具 举报

10#
发表于 2012-4-25 23:11:26 | 只看该作者
支持。。。学习了。。
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-24 06:18 , Processed in 0.155360 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表