• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[转]delphi中arrayofconst借鉴

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Delphi中关于 array of const 变体开放数组参数 .      
    变体开发数组参数允许向单个过程或函数传递不同类型表达式的数组。要定义含有变体开放数组参数的例程,需要指定array     of     const作为参数类型。如,  
    procedure     DoSomething(A:     array     of     const);  
    这里声明了一个叫做DoSomething的过程,该过程可以操作不同种类的数组。    
    array     of     const结构等价于array     of     TVarRec。TVarRec,在单元System中声明,用于表示一个记录,记录中有一个可以保存多种值(整数、布尔、字符、实数、串、指针、类、类 引用、接口、变体等)的变体部分。TVarRec中的VType字段表示数组中每个元素的类型。一些类型作为指针传递而不传递值;特别是长串,作为指针传 递并且必需转换为string类型。    
    下面的例子在函数中使用了变体开放数组参数,该函数对接受的每个元素创建一个串表示法,最后连接成一个串。该函数中调用的串处理例程都定义在SysUtils单元中。     

function MakeStr(const Args: array of const): string;
const
BoolChars: array[boolean] of char = ('F', 'T');
var
i: integer;
begin
result := '';
for i := 0 to High(Args) do
    with Args[i] do
      case VType of
      vtInteger: result := result + IntToStr(VInteger);
      vtBoolean: result := result + BoolChars[VBoolean];
      vtChar: result := result + VChar;
      vtExtended: result := result + FloatToStr(VExtended^);
      vtString: result := result + VString^;
      vtPChar: result := result + VPChar;
      vtObject: result := result + VObject.ClassName;
      vtClass: result := result + VClass.ClassName;
      vtAnsiString: result := result + String(VAnsiString);
      vtCurrency: result := result + string(VVariant^);
      vtInt64: result := result + IntToStr(VInt64^);
    end;
end;

caption := MakeStr(['test', 100, '', true, 3.14159, TForm]);

caption 显示如下:

test100T3.14159TForm


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB中矩阵方程求解的实现发布时间:2022-07-18
下一篇:
Matlab学习笔记(二)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap