Qizhen's profileLabVIEWPhotosBlogListsMore ![]() | Help |
事件结构阮奇桢 Event Structure 也是一种选择结构,程序根据发生的事件决定执行哪一个页面的程序。此时,LabVIEW 的界面编写与 Visual Basic 的界面程序有些类似。 一. 按照产出源来区分事件的种类按照事件的产生源来区分,LabVIEW有以下几种事件: 1. 应用程序事件(<Application>),这类事件主要反映整个应用程序状态的变化,例如:程序是否关闭,是否超时等。 5. 控件事件(Control)是最常用的一种事件,用于处理某个控件状态的改变。例如,控件值的改变,或者鼠标键盘的操作。 二. 按照发出时间区分事件的种类按照事件的发出时间来区分,LabVIEW的事件可分为通知型事件(Notify Event)和过滤型事件(Filter Event)。 通知型事件是在LabVIEW处理完用户操作之后发出的,比如用户利用键盘操作改变了一个字符串,LabVIEW 在改变了该控件的值之后,发出一个值改变(Value Changed)通知型事件,告诉事件结构,控件的值被改变了。如果事件结构内有处理该事件的框架,则程序转去执行该框架。 下面举例说明如何使用通知型事件。我们经常需要使用到这样的字符串控件:控件用于输入电话号码,因此只接收数字和横线,对其他按键不起反应。LabVIEW没有直接提供此种控件,但是它们可以利用通知型事件被方便地实现出来。 这个例子可以在这里下载:Phone Number Control.vi 三. 动态事件 在初始状态下,打开事件配置(Edit Events)对话框,动态事件下的一栏是空的。因为动态事件只有注册过之后才能使用。与事件相关的操作在函数选栏的 Programming -> Dialog & User Interface -> Events 下面。 对于当前VI上的控件或区域等类型的事件,一般来说可以在事件结构中静态地被选择,所以不需要再动态注册一遍。但有时,当前VI的程序框图已经过于复杂,我们希望在子 VI 里去处理某些控件的事件。这时就可以把控件的引用传入子 VI,在子 VI 中动态注册所需事件。在子 VI 的事件结构中处理相应的事件。 四. 用户自定义的事件用户自定义的事件是动态事件的一种。用户自定义的事件不基于任何一个LabVIEW对象,它是使用创建用户事件节点(Create User Event)生成出来的。并且,用户可以选择不同的事件数据类型。 五. ActiveX控件的事件 ActiveX 控件的事件不能直接被LabVIEW的事件结构所截获。ActiveX 事件需要用注册事件回调 VI 节点(Register Event Callback)来为某一事件指定一个VI。当事件发生时,执行被注册的 VI。我们也可以利用注册事件回调 VI 节点为某一 LabVIEW 自身的事件注册一个回调 VI,但是出于运行效率,和程序可读性等方面的考虑,最好不要这样使用。
相关文章: 范例下载: Comments (8)
TrackbacksThe trackback URL for this entry is: http://ruanqizhen.spaces.live.com/blog/cns!5852D4F797C53FB6!2004.trak Weblogs that reference this entry
|
|
|