2010-03-08 29 views
6

Al trabajar ahora en Delphi7, noté que no solo existe una función VarIsEmpty, sino también una VarIsEmptyParam.Cuál es la diferencia entre las funciones VarIsEmpty y VarIsEmptyParam

Desde la ayuda de Delphi no da mucha explicación:

VarIsEmptyParam devuelve verdadero si la variante dada representa un parámetro opcional sin asignar .

Si la variante contiene cualquier otro valor, el resultado de la función es falso.

Me preguntaba si alguien ha usado esta función y, de ser así, cómo se usa esta función.

Respuesta

8

En COM es posible tener parámetros opcionales en una llamada a método en cualquier posición, mientras que en Delphi esto solo es posible al final. Por lo tanto, si desea omitir el parámetro, puede escribir EmptyParam. EmptyParam es una variable global inicializada con los valores correctos.

Ahora cuando está implementando una interfaz COM, tiene que lidiar con estos parámetros opcionales también. La forma de averiguar estos parámetros omitidos es VarIsEmptyParam.

Tenga en cuenta que incluso una variante vacía dada como parámetro produce VarIsEmptyParam = false, porque el parámetro no se omite. Está vacío, pero está allí.

Así que normalmente se encuentra:

VarIsEmpty(v) ==> not VarIsEmptyParam(v) 

y

VarIsEmptyParam(v) ==> not VarIsEmpty(v) 
+2

'EmptyParam' tiene un tipo de variante de' varError' con un valor de error de 'Var_ParamNotFound', mientras que una variante de vacío es uno con un tipo de variante de 'varEmpty'. Dos tipos de datos completamente diferentes, solo con nombres similares. –

Cuestiones relacionadas