VarType(aVariant)= 273(或$111)是什么意思?它是未记录的变体类型. VarTypeAsText(aVariant)在评估程序错误中返回Expression非法. 从系统单元的源代码: const{ Variant type codes (wtypes.h) } varEmpty = $0000;
const { Variant type codes (wtypes.h) } varEmpty = $0000; { vt_empty 0 } varNull = $0001; { vt_null 1 } varSmallint = $0002; { vt_i2 2 } varInteger = $0003; { vt_i4 3 } varSingle = $0004; { vt_r4 4 } varDouble = $0005; { vt_r8 5 } varCurrency = $0006; { vt_cy 6 } varDate = $0007; { vt_date 7 } varOleStr = $0008; { vt_bstr 8 } varDispatch = $0009; { vt_dispatch 9 } varError = $000A; { vt_error 10 } varBoolean = $000B; { vt_bool 11 } varVariant = $000C; { vt_variant 12 } varUnknown = $000D; { vt_unknown 13 } //varDecimal = $000E; { vt_decimal 14 } {UNSUPPORTED as of v6.x code base} //varUndef0F = $000F; { undefined 15 } {UNSUPPORTED per Microsoft} varShortInt = $0010; { vt_i1 16 } varByte = $0011; { vt_ui1 17 } varWord = $0012; { vt_ui2 18 } varLongWord = $0013; { vt_ui4 19 } varInt64 = $0014; { vt_i8 20 } varUInt64 = $0015; { vt_ui8 21 } varRecord = $0024; { VT_RECORD 36 } { if adding new items, update Variants' varLast, BaseTypeMap and OpTypeMap } varStrArg = $0048; { vt_clsid 72 } varObject = $0049; { 73 } varUStrArg = $004A; { 74 } varString = $0100; { Pascal string 256 } {not OLE compatible } varAny = $0101; { Corba any 257 } {not OLE compatible } varUString = $0102; { Unicode string 258 } {not OLE compatible } // custom types range from $110 (272) to $7FF (2047)
请参阅列表最底部的注释.换句话说,$111是自定义变体类型.究竟是什么取决于定义该类型的代码.代码不在RTL中,可能在您的程序中.