【问题标题】:Can a variant array have 0 elements?变量数组可以有 0 个元素吗?
【发布时间】:2011-11-03 08:43:54
【问题描述】:

普通动态数组支持空(= nil, Length() = 0)

然而变体数组似乎不支持这一点。

我在变量数组中传递我的数据(因为 OLE/COM),当用户定义 0 个元素时出现错误...

我可以使用 varEmpty 代替长度为 0 的数组,但是这些数据数组可以灵活更改(添加项、删除项等)。

如何在 Variant 中传递空数组,还是需要使用其他方式?

【问题讨论】:

    标签: arrays delphi variant


    【解决方案1】:

    varEmpty 是处理此问题的正确方法。当然,COM 接口另一端的代码可能不喜欢空数组,但这一切都取决于您与该接口的特定合约。

    【讨论】:

      【解决方案2】:

      这里有一些代码可以更新变体数组,无论数组是否为空。

      Sub Variant_Add(Var_Array As Variant, What)
          ' Add "What" to a "Var_Array" without book keeping.
          ' 3/18/19 Created, Mac Lingo
      
          ' Note: Variant_Add must be defined in the following way: _
              Dim Var_Array as Variant
      
          Prog = "Variant_Add"
      
          If IsEmpty(Var_Array) Then
              ReDim Var_Array(1) As Variant
              Knt = 1
          Else
              Knt = Var_Array(0) + 1
              ReDim Preserve Var_Array(Knt) As Variant
          End If
      
          Var_Array(Knt) = What
          Var_Array(0) = Knt
      
      End Sub ' Variant_Add
      

      【讨论】:

        猜你喜欢
        • 2016-12-04
        • 2013-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-08
        • 1970-01-01
        • 1970-01-01
        • 2014-01-20
        相关资源
        最近更新 更多