开发 XControl 1 – 设计

XControl 是 LabVIEW 8 开始出现的一个制作 LabVIEW 控件的工具。与之前的用户自定义控件相比,用户自定义控件只能定义控件的界面,而 XControl 还允许通过编写代码来定义控件的行为。因此 XControl 功能更加强大。
XControl 的主要优点是可以把界面元素与相关的代码封装在一起,从而方便发布和重用这些界面组件。
XControl 也有比用户自定义控件不足的地方,它开发起来更加困难;设计不合理的XControl会导致程序更加严重的问题。

需要开发一个新的控件之前,首先要考虑一下以何种方式实现这个控件。
如果这个控件极为特殊,只会用在某个特定的程序中,那么也许没有必要将其作为单独的控件;
如果这个控件需要被多次使用,那么就应该考虑把它做成可重用的独立控件。这个控件也许不包含任何特殊行为,比如一个用于表示坐标位置的控件由两个数值控件组成,程序只是使用它的值就可以了;或者一个新型按钮,进外观与旧按钮不同,其它行为都与传统的按钮一模一样。这样的控件适合使用用户自定义控件来制作。
如果新的控件需要重用,行为与已有其它控件又有较大差别,那么就要考虑XControl了。比如:制作一个新按钮,但它比传统按钮多一个状态;或者它的界面带有动画效果;制作数值类控件但是用中国本土度量单位;基于图片控件,专用于绘制某种特殊曲线等。

我们前面提到的黑白棋的控件,既有特殊界面,又有特殊行为,又可以应用于不同软件中,非常适合做成XControl。我们先来具体设计一下这个XControl所需的界面和行为。
它的界面部分前面已经设计好了,直接拿来用就可以了。不过在前文提到的几个设计方案中,我个人觉得 Pict Ring 数组控件的那个解决方案,最能简化编程代码,所以我们采用这个界面方案。
XControl 在应在程序框图上的端点的输入输出数据应该是应用程序最经常需要与XControl交互的数据。本例中,应用程序最常使用的数据就是棋盘的布局信息。因此,这个XControl的数据应当是一个8×8的整型数组,表示棋盘上棋子的布局。
黑白棋控件的属性应当包括:当前该下什么颜色的子、可落子的位置、盘面上每种颜色的子数、上次落子的位置。
它的方法有:落下一子(这个方法需要包含以下具体的操作:在新位置放置一个棋子;翻转被吃掉的棋子;更新数据和所有属性的值)。
它还要在当用户在交互界面上摆下一子之后,发个事件通知应用程序。

在这里下载这个XControl的代码:http://decibel.ni.com/content/docs/DOC-1801

博客版《我和 LabVIEW》

开发 XControl 1 – 设计”的一个响应

留下评论