LabVIEW论坛
直播中

yelei1254

11年用户 604经验值
私信 关注
[文章]

XControl编程中的经验总结


1.在XControl外观.vi中的Action簇内存在State Changed

Boolean,宝典上注明给其赋值为True,则触发XControl的

DisplayStateChange事件,实际上并没有触发该事件;测试证

明给其赋值True会更新State.ctl中的值,若是没有赋值则

State.ctl将保持前一个状态的值;

2.XControl的自定义属性包括读取和写入两种,在宝典上标明

使用属性节点会触发Display State Change(显示状态改变事

件),实际上测试,使用XControl的自定义读取属性,并不会

触发Display State Change事件;应该是自定义写入属性使用

时才会触发。

3.关于如何使XControl响应键盘事件的问题
  解决该问题的办法会有多种,比方说在init.vi注册事件来

实现键盘响应(该种方法未测试,可以百度搜索XControl如何

发送用户事件);我使用的时比较笨的方法,通过使用

XControl的自定义方法节点来完成,就像是在C++中子类的方

法内调用了父类的同名方法一样,首先要在State.ctl中创建

一个Boolean控件命名为Adjustor,然后再给该XControl添加

名为Adjustor的方法节点,每次调用该方法都使得Adjustor的

值取反,在State控件中添加ScanMode等KEY组合键与平台键的

状态控件,并添加对应自定义属性ScanMode;再在外观.vi中

添加While循环中添加处理响应KEY事件的条件结构,使用初始

值为False的移位寄存器的值和Adjustor的值的与作为KEY事件

执行的条件,移位寄存器的输出端接Adjustor,这样连续执行

两次Adjustor方法,KEY事件响应一次;这样在使用XControl

的KEY事件结构中程序中,先使用XControl的属性节点

ScanMode将组合键平台键的状态传递给XControl,再调用两次

XControl的Adjustor方法就可以实现。

回帖(3)

leonzl

2016-1-19 09:02:31
支持一下,感谢楼主的经验分享
举报

李柯柯

2020-2-25 13:25:01
楼主分享的内容很细致,开始自己练习的时候才能知道讲得是什么。
举报

游离映像

2020-2-26 11:33:32
感谢楼主的分享,非常感谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分