7

Delphi7で作業していると、関数だけでなくVarIsEmpty、も存在することに気づきましたVarIsEmptyParam

Delphiの助けはあまり説明を与えないので:

指定されたバリアントが割り当てられていないオプションのパラメーターを表す場合、VarIsEmptyParamはtrueを返します。

バリアントに他の値が含まれている場合、関数の結果はfalseになります。

誰かがこの関数を使用したことがあるかどうか、もしそうなら、この関数がどのように使用されるのか疑問に思っていました。

4

1 に答える 1

8

COMでは、メソッド呼び出しの任意の位置にオプションのパラメーターを設定できますが、Delphiでは、これは最後にのみ可能です。したがって、パラメータを省略したい場合は、EmptyParam代わりに書くことができます。EmptyParamは正しい値で初期化されたグローバル変数です。

ここで、COMインターフェイスを実装するときは、これらのオプションのパラメーターも処理する必要があります。これらの省略されたパラメータを見つける方法はVarIsEmptyParamです。

パラメータとして指定された空のバリアントでも、パラメータが省略されていないため、VarIsEmptyParam=falseになることに注意してください。ただ空ですが、そこにあります。

したがって、通常は次のようになります。

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

VarIsEmptyParam(v) ==> not VarIsEmpty(v)
于 2010-03-08T13:46:07.200 に答える