delphi type
声明:
1. type Name = Existing type;
2. type Name = type Existing type;
3. type Name = (EnumValue1 [=value], EnumValue2 [=value] ...);
4. type Name = Expression1..Expression2;
5. type Name = ^Existing type;
6. type Name = array[...] of Existing type;
7. type Name = class ... end;
8. type Name = class of Existing class
9. type Name = dispinterface ... end;
10. type Name = file of Existing type;
11. type Name = function ...;
12. type Name = interface ... end;
13. type Name = object ... end;
14. type Name = procedure ...;
15. type Name = record ... end;
16. type Name = set of Ordinal values
描述:Type关键词是Delphi的基础部分,不像其它语言,它允许创建变量和过程的新类型(种类)。这些新的类型可以被引用,就像它是语言的一部分一样。
比如:Type TCourtCards = (Ace,Jack,Queen,King);
允许定义一个这种“type”的新变量:var Card:TCourtCard; Card:=Queen;
一般都在类型名字的前缀加“T”,这是一种有用的约定。
1.type Name = Existing type
参考一个现有的类型,比如用新的名字来替代string。
2.type Name = type Existing type
这个与上面的效果一样,但是它确保在运行时,这个类型的变量被识别为它的新类型名称,而不是原先已存在的类型名称。
3.type Name = (EnumValue1,EnumValue2…)
定义一个枚举类型,包含了值EnumValue1,EnumValue2等等。它是用户自定义的名字,列举出所有有可能的值。这些值在你的程序中必 须是唯一的,一旦在类型中定义了它,只可通过两种方法引用:指定或引用一个这种类型的变量;和用Ord关键词取得序数作为数字值。见例子。
注:这些枚举元素在定义的时候,它的位置值为0,1,2,等等,除非这个值用“=value”覆写。如:
Type Days = (Monday = 1,Tuesday,Wed…);
这里,Monday位置值被设为1,Tuesday为2,Wednesday 为3,依次类推。
4.Type Name = Expression1..Expression2
这里是一个完整的整数或字符范围,从Expression1表达式到Expression2表达式。表达式1和2可以是计算结结果为整数或字符的公式,或仅是整数或字符常量。如:Type TAlphabet =’A’..’z';通常用于定义字符范围,从大写A到小写z。
5.type Name = ^Existing type
‘^’符号是指向现有类型的指针。它经常用于导航记录Record类型。
6.type Name = array[…] of existing type
一个结构类型,用一个新的类型封装了某类型的数组。
7.type Name = class…end
用于定义一个新类的结构,详见Class关键词。
8.type Name = class of existing class
提供一个meta-class定义,详见Class关键词。
9.type Name = dispinterface … end
一个分派接口(dispatch interface)类型,详见Dispinterface关键词。
10.type Name = file of Existing type
定义一个指向文件的类型,这个文件包含了给定类型的记录。(默认地,文件包含二进制数据)
11.type Name = function …
定义一个函数当作类型,允许这个函数被定义作为参数用于子程序。
12.type Name = interface … end
用于定义接口的结构。详见Interface关键词。
13.type Name = object … end
相当于类定义,已过时淘汰。
14.type Name = procedure …
定义一个过程当作类型,允许这个过程被定义作为参数用于子程序。
15.type Name = record … end
定义记录类型,在给定的名称下封装数据结构。详见Record关键词。
16.type Name = set of Ordinal values
定义有序数的子界。定义了一个整数或字符的范围。详见Set关键词。
{举一些type例子}
Type
TString1 = string; // 1. type Name = Existing type
TString2 = type string; // 2. type Name = type Existing type
TTemp = (Hot, Warm, Cold); // 3. type Name = (Enum1, Enum2 ...)
TExpr = 5*2 .. 6*3; // 4. type Name = Expr1 .. Expr2
// 5. See the Pointer keyword
TArray = array[1..3] of byte; //6. type Name = array[...] of type
// 7. 见TFrom1类定义
// 8. 详见 Class 关键词
// 9. 详见 Dispinterface 关键词
// 10. 详见 File 关键词
// 11. 详见 Function 关键词
// 12. 详见 Interface 关键词
// 13. 淘汰不用了
// 14. 详见 Procedure 关键词
TRecord = record // 15. type Name = record .. end;
header : string;
value : Integer;
end;
TLetters = set of 'A'..'z'; // 16. type Name = set of Ordinals
var
// 用上面的类型定义变量
firstName : TString1;
lastName : TString2;
temperature : TTemp;
expression : TExpr;
myArray : TArray;
myRecord : TRecord;
letters : TLetters;
begin
// 为变量赋值
firstName := 'Neil';
lastName := 'Moffatt';
temperature := Cold;
expression := 10;
myArray[1] := 5;
myRecord.header := 'data file';
letters := ['F'..'Q'];
end;
delphi type的更多相关文章
- Delphi与各数据库数据类型比较
Delphi数据类型与各数据库数据类型对比如下表,如有具体说明见表中脚注: Delphi Type Oracle Types SQL Server Types MySQL Types [1] Inte ...
- Delphi 二维码产生和扫描
Zint用于产生二维码. Zxing用读取二维码. VFrames.pas和VSample.pas用于摄像头. 另附带摄像头相关的类库,也可用开源的dspack也可用于摄像头的需求. 以上为开源的信息 ...
- Delphi 与 C/C++ 数据类型对照表(最新的tokyo)
更新,下面这table为最新的tokyo基本数据类型与C++的对照关系: Delphi to C++ types mapping Go Up to Support for Delphi Data ...
- XE4 TStringDynArray 比 c6 的TStringList 好用 字符串 分解 分割 转换 TByteDynArray
TStringDynArray 动态数组 字符串 分解 分割 System::DynamicArray<System::UnicodeString> TByteDynArray, ...
- 利用Delphi的File Of Type创建并管理属于你自己的数据库
http://www.360doc.com/content/16/1128/19/28222077_610249962.shtml 利用Delphi的File Of Type创建并管理属于你自己的数据 ...
- Delphi Data Type to C# Data Type
Delphi DataType C# datatype ansistring string boolean bool byte byte char char comp double currency ...
- delphi 如何关闭 Unsafe typecast of 和 Unsafe type 的waring
有时在Delphi使用指针类型的数据,总是提示如下: [Warning] FGroupFeedBack.pas(796): Unsafe typecast of 'Pointer' to 'TObje ...
- Where is the ActiveX Project Type for Delphi 10.1 Berlin
n 10.1 Berlin the ActiveX project types are missing from the New Items Window under Delphi. They are ...
- delphi 10.1 berlin datasnap提交clientdataset.delta报:invalid variant type conversion(类型转换错误)问题的解决
delphi 10.1 berlin datasnap提交clientdataset.delta报:invalid variant type conversion(类型转换错误)问题的解决,需要打这个 ...
随机推荐
- Linux开机启动项总结
在应急响应时有时会遇到系统被植入后门,添加启动项等操作,如果不清楚启动项的话,可能会被黑客植入一些开机启动项,无法彻底清除后门程序,所以在这梳理下启动项的东西 1.操作系统接管硬件以后,首先读入 /b ...
- 动态规划1——最长递增子序列、最长公共子序列、最长公共子串(python实现)
目录 1. 最长递增序列 2. 最长公共子序列 3. 最长公共子串 1. 最长递增序列 给定一个序列,找出其中最长的,严格递增的子序列的长度(不要求连续). 解法一:动态规划 通过一个辅助数组记录每一 ...
- 手写KMeans算法
KMeans算法是一种无监督学习,它会将相似的对象归到同一类中. 其基本思想是: 1.随机计算k个类中心作为起始点. 将数据点分配到理其最近的类中心. 3.移动类中心. 4.重复2,3直至类中心不再改 ...
- java线程基础巩固---多线程死锁分析,案例介绍
之前已经学习了关于同步锁的知识,但是在实际编写多线程程序时可能会存在死锁的情况,所以这次来模拟一下死锁,并且学会用一个命令来确认是否程序已经出现死锁了,下面开始: 首先新建两个类: 此时当然得到Oth ...
- ASP.NET Uploadify 上传文件过大报错
Uploadify上传文件原来很早之前用过,没发现什么问题.今天再使用过程中,当文件大于30M的时候就会报错404.查看错误消息提示配置最大上传太小了.需要修改. 记得原来配置上传文件大小在这里:&l ...
- js获取链接?后边的参数名称或者值
1.获取后边的参数名称<script type="text/javascript"> var url = location.search; //获取url中" ...
- [唐胡璐]Selenium技巧- 如何处理Table
由于webdriver中没有专门的table类,所以我们需要简单的封装出一个易用易扩展的Table类来帮助简化代码。 以下是我之前用C#语言来实现的一个简单的封装: 只是一个大概的思路,有些具体实现就 ...
- centos ntfs-3g not find
1,CentOS默认源里没有ntfs3g,想要添加ntfs支持,需要自己下载编译安装或者加源yum安装.我这里使用的是添加aliyun的epel源来yum安装的方式. 2,添加epel yum源wge ...
- 设置了msconfig处理器个数和内存开不了机终极解决办法
1.进入 启动修复 的 命令提示符(最好是使用有管理员权限的,不过普通用户我也每试过), 使用 bcdedit 命令来查看. 2.可以查看到你的启动参数. 确认 truncatememory 是否为 ...
- 连续攻击游戏【P1640洛谷】二分图匹配变形【好题】【每次memset太慢了,用时间戳id。】
lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备最多只能使 ...