我正在使用一个COM组件,它暴露了很多Variant属性,但有时这些值为null。当我尝试将这些值转换为字符串(或另一种Delphi类型)时,应用程序会引发一个例外:
Could not convert variant of type (Null) into type (String)
但是,如果我使用.net来调用相同的属性,并且值为null,则不会引发异常,并将空值视为空字符串。
我的问题有一种方法来处理这些来自Delphi的空值,避免这些异常?
提前致谢。
解决方法
尝试将
NullStrictConvert设置为False。
由于它是一个全局变量,所以使用它可以减少副作用:
var OldNullStrictConvert: Boolean; begin OldNullStrictConvert := NullStrictConvert; NullStrictConvert := False; try // code containing conversions finally NullStrictConvert := OldNullStrictConvert; end; end;
(实际上我已经做了一个监护人界面。)