LabVIEW的Framework(4):在GUI程序里传递数据
2008-12-03 19:57
204 查看
前一篇里说了在GUI程序里使用消息队列,提到了使用消息队列是用来实现代码的重复使用,类似于subVI的作用。subVI,也就是类似于传统编程语言里的函数概念,那我们就的讨论一下怎么传递数据了。要在以前,说到传递数据,我肯定第一个想法就是用Local Variable。NI的人无数次跟我说,使用Local Variable是有效率问题的,能不用就不用,而我一直坚持有需要就用的原则,弄得一个程序里Local Variable满天飞。自从师弟跟我说过了他实习的地方使用的消息队列处理框架之后,我才发现,原来程序可以写成这样,数据还可以这样传递。
好了,打住题外话,我们来看看怎么样传递数据。还是上一篇的程序,OK、Apply、Cancel三个按钮,点击OK、Apply按钮都会弹出一个对话框,显示的内容都是Apply。这次,我们要改变一下,从对话框显示的内容来区分一下点击的是OK还是Apply。
后面板,在while循环上添加一个shift register,构造一个cluster,其中包含一个名字叫Message的字符串,连到shift register上。这个shift register就是帮助我们来传递数据的手段了。shift register是专门优化过的,其效率要比Local Variable高多了,用来传递数据是再合适不过。在OK和Apply的事件里分别给Message赋值:"OK"和"Apply",然后在case的Apply Changes里,把对话框的输入连到传递的数据上,工作完成了。运行一下看看效果吧。
在这个程序里,我们使用shift register完成了数据的传递,避免了Local Variable的使用,使得程序的运行效率得到了很大的改善、更重要的一点是代码的可读性提高了。试想一下,在一个规模大一点的程序里,出现了Local Variable满天飞的情况,要理清这些数据的源头可就得费半天劲儿了,更别说读了,再更别说代码的调试和后续维护了,现在光想想我就觉得头皮发麻。
好了,打住题外话,我们来看看怎么样传递数据。还是上一篇的程序,OK、Apply、Cancel三个按钮,点击OK、Apply按钮都会弹出一个对话框,显示的内容都是Apply。这次,我们要改变一下,从对话框显示的内容来区分一下点击的是OK还是Apply。
后面板,在while循环上添加一个shift register,构造一个cluster,其中包含一个名字叫Message的字符串,连到shift register上。这个shift register就是帮助我们来传递数据的手段了。shift register是专门优化过的,其效率要比Local Variable高多了,用来传递数据是再合适不过。在OK和Apply的事件里分别给Message赋值:"OK"和"Apply",然后在case的Apply Changes里,把对话框的输入连到传递的数据上,工作完成了。运行一下看看效果吧。
在这个程序里,我们使用shift register完成了数据的传递,避免了Local Variable的使用,使得程序的运行效率得到了很大的改善、更重要的一点是代码的可读性提高了。试想一下,在一个规模大一点的程序里,出现了Local Variable满天飞的情况,要理清这些数据的源头可就得费半天劲儿了,更别说读了,再更别说代码的调试和后续维护了,现在光想想我就觉得头皮发麻。
相关文章推荐
- LabVIEW的Framework(3):在GUI程序里使用消息队列
- LabVIEW的Framework(6):GUI程序框架实例
- LabVIEW的Framework(2):GUI程序
- 实例讲述在Java程序利用JDom解析和传递XML格式数据
- inux shell和c程序之间互相传递数据
- Matlab GUI 界面间数据的传递
- DLL(MFC)通过Window消息向C#程序传递数据
- 微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
- 微信小程序 页面跳转和数据传递实例详解
- Labview中数据保存部分程序
- Android程序中Acticity间传递数据
- 小程序笔记五:页面数据传递
- 微信小程序之二三级菜单(navigateTo传递数据的应用)
- 微信小程序之传递数据(两种方法)
- 第十五篇:关于TCP通信程序中数据的传递格式
- Matlab GUI 设计(4):不同控件之间的数据传递
- DLL(MFC)通过Window消息向C#程序传递数据
- 微信小程序入门——页面跳转、数据传递、数据接收
- DLL(MFC)通过Window消息向C#程序传递数据
- GUI数据传递userdata