Delphi中的Type

Delphi语言的数据类型 delphivar// 定义一个指向整数的指针Delphi语言提供了多种数据类型,能够满足不同的开发需求。通过对基本数据类型、复合数据类型、指针类型、动态数组及文件类型的总结,我们可以看到Delphi语言在数据处理方面的强大能力。无论是进行科学计算、数据解析、还是开发复杂的用户界面,都能找到合适的数据类型进行处理。掌握这些数据类型的使用,可以有效提高编码效率和程序性能,从而开发出更优秀的应用程序。希望本文能帮助大家更好地理解Delphi语言的数据类型,为今后的编程实践打下坚实的基础。 阅读详情


声明:

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; 
别再手动调参了!用Matlab的Control System Designer搞定PID校正(附Simulink仿真对比) 本文介绍了如何利用Matlab的Control System Designer工具箱实现PID参数的智能优化,告别传统试错方法。通过频域分析和图形化操作,工程师可以快速完成控制系统校正,提升系统动态性能。文章详细解析了校正器选择策略、实战工作流以及Simulink仿真验证,帮助读者掌握自动控制系统设计的高效方法。 阅读详情

相关推荐

告别有线:用PVE直通无线网卡,打造一台真正的‘无线’Win10软路由/测试机

本文详细介绍了如何通过PVE直通无线网卡技术,构建全无线Win10软路由或测试机。从硬件选型、PVE环境配置到PCIe和USB双模直通技术,逐步指导实现Wi-Fi AP和蓝牙连接功能,为家庭实验室和小型办公环境提供灵活高效的网络解决方案。

weixin_28683689的博客 587

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....

achs24540的博客 410

用PyTorch和snnTorch库5分钟搞定一个脉冲神经网络(SNN)手写数字识别Demo

本文详细介绍了如何使用PyTorch和snnTorch库快速搭建一个脉冲神经网络(SNN)手写数字识别Demo。通过模拟生物神经元的脉冲发放机制,SNN在低功耗场景中展现出独特优势。文章涵盖环境配置、数据预处理、模型构建、训练评估全流程,并提供了性能优化技巧和常见问题解决方案,帮助开发者在5分钟内实现高效的SNN应用。

weixin_29300931的博客 392

Delphi 数据类型

一.类型定义       对于每一种自定义数据类型,必须遵循“先定义,后使用”的原则。类型定义的语法格式为:       [格式]:       type 类型名=类型;       [说明]:       type是保留字。类型名的命名要符合自定义标识符的命名规则。每种类型的定义都有各自的语法。         类型定义出现在程序说明部分。  二.枚举类型和子界类型    

CoCo的专栏 1326

从零到一:ASTER L2数据获取的实战避坑指南

本文提供了一份详细的ASTER L2数据获取实战指南,涵盖账号注册、环境配置、数据检索、下载故障排除及后处理等关键步骤。特别针对NASA EarthData平台的隐形门槛和常见陷阱,给出了实用解决方案,帮助科研新手高效获取地表温度数据,适用于环境监测和城市热岛效应分析等领域。

weixin_29061425的博客 519

泛微ecology9二次开发-附件上传-安全实践

本文深入探讨了泛微ecology9二次开发中附件上传功能的安全实践。针对原生接口的安全机制,文章提出了同源部署与服务端代理转发两大核心策略,并提供了基于Vue3和Element Plus的完整前端实现代码,重点解决了会话验证、权限控制及文件关联等关键安全问题,确保二次开发应用能安全、稳定地与ecology9系统集成。

qsc9012345的博客 532

delphi的procedure of object(一个特殊的指针类型)

理论: //适用于实现不是某一特定过程或函数 type TNotifyEvent = procedure(Sender: TObject) of object; 首先:procedure 也是类型,可以理解为过程类型,定义过程的参数结构,而具体的实现可以动态赋值 onclick那样例子: 声明: οnclick= procedure(Sender: TObject,a :integer) of object;以后你就可以把TNotifyEvent作为过程用了,而不用考虑它实现什么功能,你想oncl

weixin_44137652的博客 993

脑电信号处理实战 01 | 从 0 跑通第一个 EEG 分析:加载、滤波、频谱与“睁眼闭眼“

本文以 UCI 公开数据集"EEG Eye State"为例,从零走通脑电处理的完整流水线——数据加载、1–40 Hz 带通滤波、Welch 功率谱、频带功率、通道相关性与箱线图质控、睁闭眼对比和时频分析,并用 8 张科研风格图层层揭示这份数据中的伪迹与通道重复问题,说明"流程跑得通不等于结果可信,质量控制永远先行"。

qq_53529450的博客 115

delphi MimeType for Restful及delphi mime-type和文件扩展名对照表

delphi MimeType for Restful MimeType是你让编写的应用Restful化编程所必须的。delphi支持哪些MimeType,如何知道这些MimeType与文件扩展名的对应关系,以及它们是文本种类、二进制种类还是未定义的。 一、先上代码 : 已附上面源码下载。由于代码引用了跨平台的文件存取,使用源码注意事项:1、在FormCre...

pulledup的博客 1002

【第三方互联】3、腾讯QQ授权第三方登录

当我们创建的 QQ 互联应用成功后,我们便可以开始使用该应用来实现 QQ 互联 一、获取 APP ID 和 APP Key 1、找到我的应用 2、点击应用,进入详情 这样,我们就获取到了 APP ID 和 APP Key 二、进行开发 1、将 APP ID 、APP Key,以及该应用的信息放入项目中的配置文件中,我使用的是SpringBoot,我放在了 application.y...

JACKAL 22万+

【网络与爬虫 53】Scrapy-Prometheus实战指南:打造企业级爬虫监控体系的终极解决方案

本文深入探讨Scrapy-Prometheus集成技术,通过费曼学习法从监控痛点出发,详细讲解如何在Scrapy爬虫中集成Prometheus指标收集系统。涵盖从基础配置到企业级监控体系的完整实战指南,帮助开发者构建可观测性强、可维护性高的分布式爬虫监控平台,实现爬虫性能的精准监控和智能告警。

熵数实验室 1584

Delphi中利用File Of Type创建并维护类数据库型二进制记录文档

话不多说,直接上代码: //定义存储数据结构 type TStudent = record ID: Integer; Age: Integer; Name: string[10]; Email: string[50]; Sex: string[5]; Address: string[100]; end; const sFile ='student.stu'; //存储文件名 var Form1: T

wh445306 592

VMware使用Windows、WinXP等虚拟机上不了网的解决办法(管用)

这个情况一般出现在可以插网线的电脑上,比如台式机和有网线插口的笔记本。需要转换器才能插网线的笔记本一般不会出现这种情况. 查看主机的IP地址和虚拟机的IP地址是否在同一网段,如果在的话,虚拟机就能上网了!!(备注:虚拟机中的IP地址一定要和主机中的用来上网的那个连接的IP地址相同哦)。

爱吃雪糕的小布丁的博客 1万+

Delphi Data Type to C# Data Type

Delphi DataType C# datatypeansistringstringbooleanboolbytebytecharcharcompdoublecurrencydecimaldoubledoubleextendeddoublei

i-mimi 1634

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

delphi XE应用Restful时Rest组件的delphi XE ContentType即delphi XE mime type怎样获取和表达

delphi XE应用Restful时Rest组件的delphi XE ContentType即delphi XE mime type怎样获取和表达 一、usesREST.Types; //var //DefaultRESTRequestParameterKind: TRESTRequestParameterKind = TRESTRequestParameterKind.pkGETor...

pulledup的博客 1891

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Delphi开发技巧: 修复XML数据绑定错误: “Could not convert variant of type (Null) into type…”!

QuickTip:Fixing“Couldnotconvertvariantoftype(Null)intotype…” IoftenusetheXMLDataBindingwizardinDelphi.However,itdoesn’tseemtohavebeengivenalotofattentionfromBorland/I...

Delphi开发局QQ群:32422310 1948

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Delphi type关键字的作用

创建用户自定义的类型,定义一个类遇到别的开始,遇到function和procedure,var其它声明出现,例如全局变量、公共函数等,或者implementationtype后面的第一个end是结束再一个type 再定义一个类type和end之间可以有多个type 转载于:https://www.cnblogs.com/JackShao/archive/2012/04/30/2476925.htm...

weixin_30787531的博客 790

Delphi 报错 Type androidx.collection.ArraySet is defined multiple times

Delphi 11 建立一个新的 Multi-Device Application 编译成app的时候报错。找到该项目的Libraries,将有重复名称但是版本不同的jar包 disable 掉。发现是jar包同时使用了不同的版本导致的,于是要去掉一个,保留最新版本即可。然后重新build,就通过了。

张猿的日常 659

Ordinal type 的操作及Delphi System 提供的编译期函数

Delphi Sysem提供的编译期函数 (Dec,Inc,Pred,Succ,Ord,Chr,Low,High,Sizeof) Dec:将参数的值递减1或一个特定的值,其中特定值可在第二个可选参数中定义。 Inc:将例程中参数的值递增1或一个特定的值 Odd:如果参数为奇数则返回 真。 Pred:根据参数在其数据类型定义中的序列,返回参数值的前驱值。 Succ:返回参数的后...

ankuangfu5334的博客 239

delphi tclientdataset字段显示type mismatch

delphi xe7, MYSQL 5.6,表中有个自增长字段 ’id',unsigned,not null 三层客户端的tclientdataset的设计阶段添加所有的字段,包括一个自增长字段id, 运行时就显示 type mismatch for field 'id', expecting autoinc, actual longword. 然后把cds的字段编辑器中id字段删除,手动添加,也不行。 最后只能把表的字段定义改为SIGNED(无符号改为有符号); cds就正常了。 ...

g58521547的专栏 518

Delphi - 关于错误E2002 File Type is not allowed here

====================================================== 注:本文源代码点此下载 ====================================================== 技术交流,dh讲解. 最近写的程序里面想加入一个log的功能,为了方便以后使用,所以就打算写一个控件.结果遇到了一个问题,这里和大家分享.pro

javazhuanzai的专栏 813

delphi Format Type

Format   type的可能值有下列这些:  (1) d 有符号十进制数        Args必须是有符号整型数。如果在格式化字符串中还加入了["." prec],则如果Args        的长度如果小于给出的精度数时,在前边填补0;如果大于精度数,按实际长度显示。        Format((%.3d), [99]); 结果:(099)  (2) u 无符号十进制

385
上一篇: 一个词法分析器源码的剖析
下一篇: 解决IE正常模式与兼容性模式的办法
一剑平江湖
博客等级 码龄18年 207粉丝 1070原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值