1.在XControl外观.vi中的Ac
tion簇内存在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方法就可以实现。