Variant_百度百科

来源:互联网 发布:新网域名怎么备案 编辑:程序博客网 时间:2024/03/29 15:23
导读:
变体类型Variant
变体类型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]);

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]);
  WriteLn(A[3, 4]);

end;

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

本文转自
http://baike.baidu.com/view/977550.htm