变体类型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);

转载于:https://www.cnblogs.com/sideandside/archive/2007/04/16/715136.html

变体类型Variant相关推荐

  1. 关于COM中变体类型VARIANT

    从com的设计初衷来讲,要达到跨语言的目的,但是c++啊,java,python,pascal什么的都是有自己的数据类型的,设计这个变体类型VARIANT就是为了达到这个目的,之所以称之为变体类型是因 ...

  2. VARIANT变体类型数据

    2019独角兽企业重金招聘Python工程师标准>>> 特殊 Variant 是一种特殊的数据类型,除了定长String数据及用户定义类型外,可以包含任何种类的数据.Variant ...

  3. C++变体数据类型—— VARIANT

    百度百科: Variant 音标 Phonetic symbol [] 词性及解释 Part of speech and defination n. 变体, 异体 a. 不同的, 有差别的 [计] 变 ...

  4. Delphi 变体类型(Variant)的介绍(流与变体类型的相互转换、变体类型常用的函数)...

    来源:http://blog.csdn.net/xiongmao000738/article/details/6863988 一.变体类型常用的函数介绍: Variant: 一种可以拥有各种数据类型: ...

  5. SegeX SgxVariantArrayT:VC封装支持多维数组的变体类型(VRIANT 、SafeArray)(附免费免积分源代码)

    ----哆啦刘小洋 原创,转载需说明出处 2023-01-04 SgxVariantArrayT:支持多维数组的变体类型 1 简介 2 方法原理 2.1 继承于_variant_t 2.2 模板类型到 ...

  6. 自定义Flutter资源变体(variant)

    Flutter目前没有支持到像andrid一样自动获取对应环境的变体资源,代码区分多语言取图片资源麻烦且代码可读性不高,为此封装了一个简单的ImageProvider 用来自动匹配资源 . 先讲下用法 ...

  7. php variant 数组,php – 如何将8209数组对象变体转换为VT_VARIANT

    我正在调用一个COM对象方法,该方法在我的PHP代码中返回8209类型的数组变量对象. $com_VArray = $com_Object->objectMethod; //Is a 8209 ...

  8. labview圆环里实物动画图形_LabVIEW编程技巧:功能强大的变体数据类型用法

    变体数据类型简介 LabVIEW是一种图形化编程语言,所以也叫G语言,在程序框图上连线时,必须相同类型或者能强制相互转换的类型端口才能连接在一起,例如我们不能将一个数值型的控件连接到布尔型的控件上,也 ...

  9. Shader:优化破解变体的“影分身”之术

    本期我们将剖析刚上新的Shader Analyzer中和Shader变体相关的规则:"Build后生成变体数过多的Shader"."项目中可能生成变体数过多的Shader ...

最新文章

  1. 结构成员访问的三种方法
  2. 面试官最想要的synchronized,你值得拥有
  3. jenkins部署net core初探
  4. 双向slider滑动微信小程序组件slider组件
  5. 机器学习(三):支持向量机SVM(含代码和注释)
  6. latex textbf没有用_LaTeX排版软件札记 Win10 LyX+TeXLive
  7. SAP UI5 应用开发教程之五十二 - 如何使用 SAP UI5 的标准控件结合 Cordova 插件调用手机摄像头进行条形码扫描试读版
  8. 物联网linux_Linux的未来,Google的物联网标准等
  9. ML、DL、CNN学习记录1
  10. 2019.03.17 14:58
  11. 完全小白级DataX安装配置过程详解
  12. C语言编程判断输入的英文字母是星期几
  13. ASEMI代理AD9959BCPZ原装ADI车规级AD9959BCPZ
  14. Java-Map-详解
  15. 计算机网络-自顶向下方法-笔记【第2章-应用层】
  16. 伯明翰高级计算机科学,2020年伯明翰大学高级计算机科学专业本科申请条件及世界排名|学费介绍...
  17. 怎么在SAP MM库存管理中使用简单的货架管理功能
  18. 地平线正式落户上海临港 政企合作推动城市智能化发展
  19. java模拟生存RPG游戏开发
  20. 实用的3款视频添加水印软件分享,简单易上手

热门文章

  1. java 中random类使用_Python中random的使用方法
  2. html跳动爱心代码,html+css实现跳动爱心❥(^_-)-Go语言中文社区
  3. 领导逼走员工的新套路,一次就见效
  4. VMware 大中华区原厂认证讲师(大陆地区)2019-8-19 更新
  5. Maven学习总结(20)——Maven pom.xml配置再体会
  6. java aes解密算法_使用java实现AES算法的加解密(亲测可用)
  7. SpiderKeeper的使用
  8. Shell练习(十一)
  9. Future和FutureTask实现异步计算
  10. 玩转苹果--苹果应用下载