bsp;$0008 Reference to a dynamically allocated UNICODE string. varDispatch $0009 Reference to an OLE automation object (an IDispatch interface pointer). VarError $000A Operating system error code. varBoolean $000B 16-bit boolean (type WordBool). varVariant $000C Variant (used only with variant arrays). varUnknown $000D Reference to an unknown OLE object (an IUnknown interface pointer). varByte $0011 8-bit unsigned integer (type Byte). VarString $0100 Reference to a dynamically-allocated long string (type AnsiString). varTypeMask $0FFF Bit mask for extracting type code. This constant is a mask that can be combined with the VType field using a bit-wise AND.. varArray $2000 Bit indicating variant array. This constant is a mask that can be combined with the VType field using a bit-wise AND to determine if the variant contains a single value or an array of values. VarByRef $4000 This constant can be AND''''d with Variant.VType to determine if the variant contains a pointer to the indicated data instead of containing the data itself.
范例 var V1, V2, V3, V4, V5: Variant; I: Integer; D: Double; S: string; begin V1 := 1; { Integer value } V2 := 1234.5678; { Real value } V3 := ''''Hello world''''; { String value } V4 := ''''1000''''; { String value } V5 := V1 +V2 +V4; { Real value 2235.5678 } I := V1; { I = 1 } D := V2; { D = 1234.5678 } S := V3; { S = ''''Hello world'''' } I := V4; { I = 1000 } S := V5; { S = ''''2235.5678'''' } end; ----------------------------------------------------------------------------- VarArrayOf 建立一个简单的一维variant array ----------------------------------------------------------------------------- Unit System 函数原型 function VarArrayOf(const Values: array of Variant): Variant; 范例 var A:Variant; begin A:=VarArrayOf([1 ,10 ,''''Hello ,10000]); S:=A[1]+'''' ''''+IntToStr(A[2]); Label1.Caption:=S; end; ----------------------------------------------------------------------------- VarArrayRedim 重定variant阵列中高维部分的高注脚. ----------------------------------------------------------------------------- Unit System ----------------------------------------------------------------------------- 函数原型 procedure VarArrayRedim(var A: Variant; HighBound:Integer); ----------------------------------------------------------------------------- VarArrayDimCount 传回Variant阵列的维数. ----------------------------------------------------------------------------- Unit System 函数原型 function VarArrayDimCount(const A: Variant): Integer; ----------------------------------------------------------------------------- VarArrayHighBound 传回Variant阵列中一维的高注脚. ----------------------------------------------------------------------------- Unit System 函数原型 function VarArrayHighBound(const A: Variant; Dim: Integer):Integer; ----------------------------------------------------------------------------- VarArrayLowBound 传回Variant阵列中一维的低注脚. ----------------------------------------------------------------------------- Unit System 函数原型 function VarArrayLowBound(const A: Variant; Dim: Integer): Integer; 范例 procedure TForm1.Button1Click(Sender: TObject); var A:Variant; Count:Integer; HighBound:Integer; LowBound:Integer; i:Integer; S:String; begin A:=VarArrayCreate([0,5, 1,3],varVariant); Count:=VarArrayDimCount(A); S:=#13+''''维数:''''+IntToStr(Count)+#13; for i:=1 To Count do Begin HighBound:=VarArrayHighBound(A,i); LowBound:=VarArrayLowBound(A,i); S:=S+''''HighBound: ''''+IntToStr(HighBound)+#13; S:=S+''''LowBound : ''''+IntToStr(LowBound)+#13; End; ShowMessage(S); end; ----------------------------------------------------------------------------- VarArrayLock 将variant阵列==>指定给一阵列变数. ----------------------------------------------------------------------------- VarArrayUnLock 解除上述的指定. ----------------------------------------------------------------------------- Unit System 函数原型 function VarArrayLock(var A: Variant): Pointer; 函数原型 procedure VarArrayUnlock(var A: Variant); 范例 procedure TForm1.Button1Click(Sender: TObject); Const HighVal=12; type TData=array[0..HighVal, 0..HighVal] of Integer; var A:Variant; i,j:Integer; Data:^TData; begin A:=VarArrayCreate([0,HighVal, 0,HighVal],varInteger); for i:=0 to HighVal do for j:=0 to HighVal do A[i,j]:=i*j; Data:=VarArrayLock(A); for i:=0 to HighVal do for j:=0 to HighVal do Grid1.Cells[i+1,j+1]:=IntToStr(Data^[i,j]); VarArrayUnLock(A); end; ----------------------------------------------------------------------------- VarIsArray 传回Variant是否为一个阵列. ----------------------------------------------------------------------------- Unit System 函数原型 function VarIsArray(const V: Variant): Boolean; VarIsEmpty 传回Variant是否尚未注册.(空的) Unit System 函数原型 function VarIsEmpty(const V: Variant): Boolean; 范例 procedure TForm1.Button1Click(Sender: TObject); var A:Variant; S:String; begin A:=VarArrayCreate([0,5, 0,7],varVariant); if VarIsEmpty(A) Then S:=''''True'''' else S:=''''False''''; Label1.Caption:=S; end; ----------------------------------------------------------------------------- ** S:=False,A以经建立了. ----------------------------------------------------------------------------- VarIsNull 传回Variant是否为NULL. ----------------------------------------------------------------------------- Unit System
<< 上一页 [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] ... 下一页 >> |