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仿真验证,帮助读者掌握自动控制系统设计的高效方法。 阅读详情

相关推荐

Synology-群晖(三)DSM7.0系统Video Station无法播放DTS eac3解决方案

群晖升级DSM7.0后,发现部分DTS eac3解码的视频无法通过Vedio Station 3.0.1-2067进行播放,提示不支持该格式视频,初步判断是无法加载ffmpeg解码导致,网上搜了很多处理办法都没有办法解决,最终在知乎上看到一片文章,按此办法解决了这个问题,目前经过验证,该方案完美支持最新版本Video Station 3.0.1-2067,验证系统为DSM7.0和DSM7.0.1,这里使用的NAS为 Vmware虚拟机 黑群晖 演示。大概步骤如下: 添加这个社群来源 http://p

weixin_45827203的博客 3万+

Delphi 数据类型

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

CoCo的专栏 1326

对LSTM中每个batch都初始化隐含层的理解

不知道有没有人和我有一样疑惑 在LSTM相关的代码中,为什么每个batch都会将隐藏层重新初始化, 这样不会把以前训练出来的参数丢掉吗?? 比如 代码来自GitHub 看了一些解释是h与c是状态,不是参数,每个batch中都需要初始化为0,LSTM 中的参数是W,b。 网络中训练的是参数,不是状态。 说真的。。。当时我没怎么看懂。。。 咨询了实验室的师兄后,我有了自己的理解 产生误解的主要原因是我对RNN和LSTM的结构理解不深入,我们通常看到RNN结构图基本都是这样的 ...

Chauncey_Wang的博客 5910

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

PID算法(位置式pid算法和增量式pid算法)

PID 算法是闭环控制系统中常用的算法,PID 分别是 Proportion(比例)、Integral(积分)、Differential(微分)的首字母缩写。它是一种结合比例、积分和微分三个环节于一体的闭环控。

m0_57678852的博客 2万+

CDD数据库文件制作(三)——服务配置(0x10)

根据诊断调查表进行每一步配置的详细操作,与背后逻辑解释 1.会话切换配置 1.1.根据诊断调查表进行信息提取(0x1001) 1.2.会话转换配置(0x1001) 1.3.根据诊断调查表进行信息提取(0x1002) 1.4.会话转换配置(0x1002) 1.5.根据诊断调查表进行信息提取(0x1003) 1.6.会话转换配置(0x1003) 1.7.会话切换配置完成后效果图 2.安全等级配置信息提取 2.1.安全访问配置(0x1001) 2.2.安全访问配置(0x1002) 2.3.安全访问配置(0x100

LOVE135149的博客 5838

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 = ^Existi

diligentcat的专栏 1997

【论文硬核拆解】Ctx2Skill:让大模型自己跟自己玩,从上下文里「进化」出可复用技能

论文选择自然语言技能可解释性:技能是人类可读的 Markdown 文件,可以审查、编辑、调试可迁移性:即插即用,从一个模型到另一个模型无需参数访问:对闭源模型友好这比 SKILL0/SkillRL 等参数内化方法更实用,尤其是在商业 API 场景。

步子哥的博客 154

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

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

pulledup的博客 1002

WPF用户控件间属性传递的艺术

本文详细介绍了WPF中父控件向子控件传递属性的方法。针对常见的绑定失效问题,重点讲解了使用RelativeSource绑定技术,通过指定AncestorType确保正确访问父控件属性。文章通过实例演示了从ParentModel传递属性到ChildUserControl依赖属性的完整实现过程,包括模型定义、XAML结构设计和代码实现。这种方法有效解决了数据上下文混淆问题,为WPF开发中的控件交互提供了可靠解决方案,有助于提升应用的灵活性和可维护性。

2501_90323865的博客 56

智能筛选栏 SmartFilterBar 全面解析与实战指南

SmartFilterBar 把复杂的检索界面“模板化”,让开发者聚焦业务逻辑与后端数据质量,而非 UI 小细节。通过精准运用 CDS 注解与 OData 元数据,它能在几毫秒内拼装出专业级筛选体验;结合事件钩子与控制配置,又足以满足极端个性化需求。拥抱 SmartFilterBar,意味着在 Fiori 生态中以最少代码赢得最快价值交付——这正是现代企业应用开发追求的极致效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 404

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

实例详解C++程序的五大内存分区

本文详细讲述C++程序在运行时的5大内存分区。 下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区。 1、栈内存区 栈内存区是我们用的最多的分区,只要有函数的地方都会使用到这个分区。栈分区是用来存放函数参数及函数局部变量值的内存区,是由编译器在编译时自动分配和释放的。 函数中的参数与函数中的局部变量占用的内存是代码执行到函数(进入函数)是分配的,在............

dvlinker的技术专栏 1万+

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Delphi Data Type to C# Data Type

Delphi DataType C# datatypeansistringstringbooleanboolbytebytecharcharcompdoublecurrencydecimaldoubledoubleextendeddoublei

i-mimi 1634

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

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

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

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 - 关于错误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
上一篇: delphi type
下一篇: Delphi 函数指针 过程/函数类型
jsrgren
博客等级 码龄15年 4粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值