刚才在Delphi7工作,发现里面不仅有一个VarIsEmpty
函数,还有一个VarIsEmptyParam
.
由于Delphi的帮助没有给出太多解释:
如果给定的变体表示未分配的可选参数,则 VarIsEmptyParam 返回 true。
如果变体包含任何其他值,则函数结果为假。
我只是想知道是否有人使用过这个功能,如果有,这个功能是如何使用的。
在 COM 中,方法调用中的任何位置都可以有可选参数,而在 Delphi 中,这只能在最后才有可能。因此,如果您想省略参数,您可以EmptyParam
改为编写。EmptyParam
是一个用正确值初始化的全局变量。
现在,当您实现 COM 接口时,您也必须处理这些可选参数。找出这些省略的参数的方法是VarIsEmptyParam
。
请注意,即使是作为参数给出的空变量也会产生 VarIsEmptyParam = false,因为没有省略参数。它只是空的,但它就在那里。
所以通常有:
VarIsEmpty(v) ==> not VarIsEmptyParam(v)
和
VarIsEmptyParam(v) ==> not VarIsEmpty(v)