2010-03-08 48 views
6

Şimdi Delphi7'de çalışıyorum, yalnızca VarIsEmpty işlevinin değil, aynı zamanda VarIsEmptyParam işlevinin de bulunduğunu fark ettim. Verilen varyant bir atanmamış opsiyonel parametreyi temsil ediyorsaVarIsEmpty ve VarIsEmptyParam işlevleri arasındaki fark nedir

VarIsEmptyParam doğrudur döndürür: Delphi Yardım çok açıklama olmadığından

.

Eğer varyant başka bir değer içeriyorsa, işlev sonucu yanlıştır.

Sadece birinin bu işlevi kullanıp kullanmadığını merak ettim ve eğer öyleyse, bu işlevin nasıl kullanılacağı anlatılıyordu.

cevap

8

COM içinde, herhangi bir konumda bir yöntem çağrısında isteğe bağlı parametrelere sahip olmak mümkündür, ancak Delphi'de bu yalnızca sonunda mümkündür. Yani parametreyi çıkarmak istiyorsanız, bunun yerine EmptyParam yazabilirsiniz. EmptyParam, doğru değerler ile başlatılan global bir değişkendir.

Artık bir COM arabirimini uygularken, bu isteğe bağlı parametrelerle de uğraşmak zorundasınız. Bu ihmal edilen parametreleri bulmanın yolu VarIsEmptyParam'dur.

Parametre olarak verilen boş bir varyantın bile VarIsEmptyParam = false değerini verdiğini unutmayın, çünkü param atlanmamıştır. Sadece boş, ama orada.

yüzden, normal olarak mevcuttur: Boş varyant biri ise

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

ve

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

'EmptyParam', Var_ParamNotFound'' bir hata değeri ile varError' 'bir varyantı türü vardır varyant türü var. Sadece benzer isimlere sahip iki tamamen farklı veri. –

İlgili konular