本周的技巧比较简单。如果你在一个字符串控件中输入文本内容,你可以按Shift+回车键来切换字符串控件是否显示滚动条。如果这是你第一次在输入字符串常量时按Shift+Enter键,那么该常量会自动调整尺寸来显示所有包含的内容。试一下吧!



LabVIEW7i:
我用LabVIEW8.5.1试了一下,没有发现这个特性。

后来在讨论中,Darren谈到,这个技巧是针对“字符串常数”的,而不是字符串控件。

实际上,在字符串常量中输入文本时,用鼠标右键单击该常数在快捷采单中选择:调整为文本大小,
那么该常量会自动调整尺寸来显示所有包含的内容。


 

      这个技巧在LabVIEW论坛中一直被讨论过很多次,但是我仍然希望将它写成一个正规的Darrens Nuggets。
      如果在你的UI界面上,有一些东西需要花很长时间去更新(比如最常见的就是对于Tree控件的更新),你可以在你的代码前后用 “Defer Panel Update”操作。通过在前面板设定这个属性,你可以告诉LabVIEW你并不需要“画”任何需要画的东西。这个做法可以在当你做一些大规模界面更新 (比如一下添加很多Tree的内容)时,很实在地加快你的代码运行速度。然后,一旦你的更新结束,你可以再将这个属性重新使能。此外,你也可以使用Set Busy.vi以及Unset Busy.vi来实现在更新时鼠标为一个漏斗图标,这样用户根本无法在面板中改变任何事情。下图是一个最典型的Defer Panel Update属性以及Set/Unset Busy VI的一个程序框图:


LabVIEW7i:
这绝对是一个好方法。
但应该属于VI设计,而不属于LabVIEW Nugget.


 

请查看一下在LabVIEW 8.0以上版本附带的一个VI。
[LabVIEW]\vi.lib\utility\MD5Checksum.llb\MD5Checksum file.vi
这个LLB 在Developer Zone中可以下载,但是我还是决定在LabVIEW 8.0中附带这个VI。这个VI是一个很好的, 100%的基于LabVIEW编写完成的MD5算法,用于生成校验码。我之前利用这个VI做了很多事情,比如对一个安装包生成的文件与用于创建安装包的文件进行校验对比。另一次我使用这个VI是我需要在一个项目中有一个可以对文本文件进行分析和解析的作用。再有一次,我需要读取文件,我在磁盘中比较了现有版本与旧版本文件的校验码。

如果想了解更多关于MD5算法,可以查看 http://en.wikipedia.org/wiki/Md5


 

LabVIEW 7.0之前版本,你可以高亮在面板中的多个对象,然后按Ctrl+A来执行你最近的一次排列对象操作。在LabVIEW 8.0及以上版本中,按Ctrl+A现在实现的是“选中所有”的操作。这样使得Ctrl+A快捷键与其它软件功能更为一致。以前的Ctrl+A功能则变为 了Ctrl+Shift+A。


LabVIEW7i:
实际上好多实用技巧都来自快捷键的使用方法。


 

又是一个LabVIEW 8.0以上版本适用的小技巧。你可以使用Ctrl+Tab键在你的系统中切换所有打开的LabVIEW窗口。这个组合键比传统的Alt+Tab要快一点,而且只是切换所有LabVIEW的窗口。


LabVIEW7i:
的确这是一个好技巧,Ctrl+E只是用来切换指定的某个VI,而Ctrl+Tab是轮流切换所有已经打开的VI。当我们打开多个VI时,这个方法很实用。


 

      这个很酷的小技巧是我之前的技巧讨论过程中得到的,很多人叫我把它也作为一个技巧发布,所以就有了这个帖子。如果你在另一个应用软件中设计VI 图标(比如Microsoft Paint),你可以直接将Windows浏览器的图片文件拖拽到你的VI窗口右上角的图标区。它会自动地更新为该VI的图标。我试了很多不同的图片类型,这个技巧适合BMP、JPG、GIF以及PNG文件,但是好像不支持 TIF文件。


LabVIEW7i:
但是只能拖拽到前面版的图标区中,并且自动匹配图片的大小。


 

LabVIEW 8.0以上版本中,你可以在你的VI运行时,将它的前面板设置为透明。这个可以在你使用“floating”作为前面板窗口属性时轻松实现,但是有时候你 可能依然希望能够看到桌面上的所有东西。那么为了在这样的设定中也能实现,你可以设置VI Properties > Window Apperance > Customize > Window Runs Transparent。这样你可以用一个0%到100%的值来设定窗口的透明度。


LabVIEW7i:
试倒是试过了,可是有什么用还搞不清楚???

下面是设定为80%时的截图


 

本周的LabVIEW小技巧是我上周才发现的,在LabVIEW 8.0以上版本可用的。“Format Into String函数现在允许你来自主地指定输入值在格式化字符串中的显示顺序。例如,如果你将4 个字符串输入到Format Into String函数中,而你的字符串输出格式为“%s %s %s %s”,那么输出字符串会按照输入的顺序进行显示。但是如下图中所示,你可以看到,现在有办法在格式指定中指定输入值显示的顺序。按照如下图的例子,通过 使用“%n$s”这样的通配符,其中“n”是连线输入的位置,那么你就可以动态地改变输出字符串中对于输入值的顺序了。试一下吧!


 

你之前有没有写过一个VI 用来递归地查找文件目录的所有内容?或者你是否试图找到别人已经写过的这种VI来直接使用?其实,在LabVIEW中已经有了一个现成的VI可以供你使用 的。检查一下 vi.lib\utility\libraryn.llb\Recursive File List.vi(LabVIEW 7.0及以后版本)。给这个VI一个路径或者LLB作为输入,它就会返回该路径/LLB下的所有文件列表。如果你指定一个文件目录,VI会返回所有子目录 名的列表。这个VI也允许你输入LLB作为路径,从而返回所有的内容。目前来说还不支持指定一个模式(比如*.vi),但是在将来的LabVIEW版本中 肯定会有的。


LabVIEW7i:
下面是LabVIEW8.5.1所呈现出的vi和即时帮助的图片


 

      一个巧妙的LabVIEW 技巧可以大大加快你开发的速度。如果你有一个庞大的程序框图(或者面板),一般而言,你需要拖拽一些东西到程序框图(或者面板)目前看不到的区域。为了做这个,你会拖拽该对象到视窗的边缘,从而引起视窗滚动。但是,你是否知道,如果你在滚动的时候同时按住Shift键,那么视窗滚动速度会快1倍!当然,当你调整一些对象(比如框图结构)的大小时,需要越过视窗的可见区域时,这个技巧也一样work!