使用Delphi管理变体中的空值

前端之家收集整理的这篇文章主要介绍了使用Delphi管理变体中的空值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用一个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;

(实际上我已经做了一个监护人界面。)

注意:如果可行,我更喜欢像Warren这样的代码

原文链接:https://www.f2er.com/delphi/103325.html

猜你在找的Delphi相关文章