变体类型Variant,能够在运行期间动态的改变类型。变体类型能支持所有简单的数据类型,如整型、浮点、字符串、布尔型、日期时间、货币及OLE自动化对象等,不能够表达Object Pascal对象。
1.VarArrayCreate function
Creates a variant array.

创建一个变体类型的数组。

function VarArrayCreate(const Bounds: array of Integer; VarType: TVarType): Variant;

VarArrayOf function
Creates and fills a one-dimensional variant array.

创建并且填充一个一维的变体类型的数组。

function VarArrayOf(const Values: array of Variant): Variant;

VarArrayCreate, VarArrayOf Example
var

  A: Variant;
begin
  A := VarArrayCreate([0, 4], varVariant);
  A[0] := 1;
  A[1] := 1234.5678;
  A[2] := 'Hello world';
  A[3] := True;
  A[4] := VarArrayOf([1, 10, 100, 1000]);
  WriteLn(A[2]); { Hello world }
  WriteLn(A[4][2]); { 100 }

end;


2.VarArrayLock function
Locks a variant array and returns a pointer to the data.

锁住一个变体类型的数组并且返回一个指向这个数据的指针。

function VarArrayLock(const A: Variant): Pointer;
VarArrayLock, VarArrayUnlock Example
type

  PArrayData = ^TArrayData;
  TArrayData = array[0..9, 1..3] of Integer;
var
  A: Variant;
  P: PArrayData;
  I, J: Integer;
begin
  A := VarArrayCreate([1, 3, 0, 9], varInteger);
  P := VarArrayLock(A);
  try
  for I := 0 to 9 do
    for J := 1 to 3 do
      P^[I, J] := J * 10 + I;

  finally
    VarArrayUnlock(A);

  end;
  WriteLn(A[1, 9]); { 19 }
  WriteLn(A[3, 4]); { 34 }

end;

3.VarArrayUnlock procedure
Unlocks a variant array.
procedure VarArrayUnlock(var A: Variant);

posted on 2007-04-16 12:56  左左右右  阅读(1220)  评论(0编辑  收藏  举报