`

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三层框架+delphi源码MES生产管理系统

    (详细请看:https://blog.csdn.net/dgthm?type=blog) 2,此框架服务端没有使用任何第三方控件,相比其它中间件,使用很多第三方插件,且绑定一些自研控件,此框架使用更放心;也没有使用多少高大上的技术;主要...

    delphi2-delphi2010 全支持 dcu 装换 pas

    delphi2-delphi2010 全支持 dcu 装换 pas -------------------------------------------------------------------------------- Project Dcu2Pas Version 1.3 Purpose Decompile a D2-D7, K1-K3's dcu(dpu) file ...

    FlexGraphics_V_1.79_D4-XE10.2_Downloadly.ir

    type items in compliance with the Delphi type: SetEnumType(TypeInfo('TMyDelphiEnumType')); - ADD: Added the functions PathLength and PathLengthPos in the module FlexPath. Also added the parameter ...

    Delphi++【新的Delphi工具来了】

    Delphi++ seamlessly imports and intergrates ActiveX Controls, COM Type Libraries and includes additionally a new technology which enables the developers to import and utilize Microsoft .NET Framework...

    Delphi EX,Delphi11,SPComm,串口编程,安装教程

    1.本控件改善了老SPComm在Delphi新版本上安装报错的问题。 2.控件详细的安装说明见如下连接: ...

    Delphi in a Nutshell

    Delphi in a Nutshell starts with the Delphi object model and how to use RTTI (Run Time Type Information) for efficient programming. The rest of the book is the most complete Delphi Pascal language ...

    delphi d11 + skia4delphi 绘制的仪表盘,已经封装成简单的控件

    type TJsonDashboard = class(TObject) private FView: TSKPaintBox; FMinValue: Integer; FMaxValue: Integer; FCurValue: Integer; procedure SetMinValue(const Value: Integer); procedure SetMaxValue...

    C/C++头文件转delphi工具(源码)

    一个C/C++头文件转delphi的小工具,转换一些结构体,常量,的头文件很有用。函数类的转换暂时没有。之前找的比较老,是d7版本的。现在改成Ex版可编译,优化了一下结构和类型常量的对照,不过转换后还是需要稍作修改...

    Delphi6分布式开发

    全书共分五篇:第一篇简要介绍了分布式结构及Delphi 6对 它的支持;第二篇讲述了分布式组件的实现,篇中分别讲述了DCOM架构的基元——COM的编程基础,创建DCOM客户端用& 务器应用以及COM十分布式应用的开发;第三篇...

    delphi资源-MessageDLG

     hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。  Text:欲显示的信息字符串。  Caption:对话框标题字符串。  Type:对话框类型常量...

    Delphi编程大师2003 4of5

    能够得知True Type字体详细信息的非可视构件 直接存取硬件设备IO口地址的非可视构件BAIOPORT QuickReport实现自动分行显示的补丁 能够拦截系统内键盘输入信息的Hook构件 能够精简HTML文件的控件 可以处理XML的...

    delphi 建立共享文件

    delphi 建立共享文件夹 with NetSource do begin dwType := RESOURCETYPE_ANY; lpLocalName := 'X:'; // 映射到本地的驱动器名称 lpRemoteName := '\\...\wenjian\'; // 共享文件夹目录 lpProvider := ''; ...

    Delphi编程大师2003 2of5

    能够得知True Type字体详细信息的非可视构件 直接存取硬件设备IO口地址的非可视构件BAIOPORT QuickReport实现自动分行显示的补丁 能够拦截系统内键盘输入信息的Hook构件 能够精简HTML文件的控件 可以处理XML的...

    DELPHI动态创建删除FRAME---示例源码

    DELPHI动态创建删除FRAME unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,FM; type TForm2 = class(TForm) Panel1: ...

    利用Variant变量用DELPHI操作EXCEL

    利用Variant变量用DELPHI操作EXCEL.zip

    Delphi编程大师2003 1of5

    能够得知True Type字体详细信息的非可视构件 直接存取硬件设备IO口地址的非可视构件BAIOPORT QuickReport实现自动分行显示的补丁 能够拦截系统内键盘输入信息的Hook构件 能够精简HTML文件的控件 可以处理XML的...

    Delphi编程大师2003 5of5

    能够得知True Type字体详细信息的非可视构件 直接存取硬件设备IO口地址的非可视构件BAIOPORT QuickReport实现自动分行显示的补丁 能够拦截系统内键盘输入信息的Hook构件 能够精简HTML文件的控件 可以处理XML的...

    Delphi7.完美经典

    第0章 认识Delphi 0-1 前言 0-2 Delphi简介 0-3 进入Delphi7 0-4 退出Delphi 第1章 常用的窗口工具 1-1 窗体(Form) 1-2 代码编辑器(Code Editor) 1-3 代码浏览器(Code Explorer) 1-4 组件面板...

    Delphi编程大师2003 3of5

    能够得知True Type字体详细信息的非可视构件 直接存取硬件设备IO口地址的非可视构件BAIOPORT QuickReport实现自动分行显示的补丁 能够拦截系统内键盘输入信息的Hook构件 能够精简HTML文件的控件 可以处理XML的...

    DELPHI RTTI 探索

    DELPHI RTTI 探索 RTTI(Run-Time Type Information) 翻译过来的名称是“运行期类型信息”,也就是说可以在运行期获得数据类型或类(class)的信息。

Global site tag (gtag.js) - Google Analytics