理解delphi集合类型

在其他现代语言中找不到的Delphi语言特性之一是集合的概念。...

在其他现代语言中找不到的Delphi语言特性之一是集合的概念。

Person using a laptop with mouse

Delphi的集合类型是相同序号类型的值的集合。

使用关键字集合定义集合:

集合类型通常用子范围定义。

在上述示例中,TMagicNumber是一种自定义子范围类型,允许TMagicNumber类型的变量接收1到34之间的值。简单地说,子范围类型表示另一个序号类型中的值的子集。

集合类型的可能值是基类型的所有子集,包括空集合。

集合的一个限制是它们最多可以容纳255个元素。

在上面的示例中,TMagicSet类型是一组TMagicNumber元素-从1到34的整数。

声明TMagicSet=TMagicNumber集合等于以下声明:TMagicSet=集合1..34。

设置类型变量

在上面的示例中,变量emptyMagicSet、oneMagicSet和anotherMagicSet是TMagicNumber的集合。

要为集合类型变量赋值,请使用方括号并列出集合的所有元素。例如:

注1:每个集合类型变量都可以保存空集合,用[]表示。

注2:一个集合中元素的顺序没有意义,一个集合中包含两次元素(值)也没有意义。

in关键字

要测试集合(变量)中是否包含元素,请使用in关键字:

集合运算符

就像两个数字求和一样,你可以得到一个集合,它是两个集合的总和。使用集合,您的事件具有更多运算符:

  • +返回两个集合的并集。
  • -返回两个集合的差。
  • *返回两个集合的交集。
  • =如果两个集合相等,则返回true-具有相同的元素。
  • <=如果第一个集合是第二个集合的子集,则返回true。
  • >=如果第一个集合是第二个集合的超集,则返回true。
  • <>如果两个集合不相同,则返回true。
  • 如果集合中包含元素,则IN返回true。

下面是一个例子:

是否将执行ShowMessage过程?如果是,将显示什么?

下面是DisplayElements函数的实现:

提示:是的。显示:“18 | 24 |”。

整数、字符、布尔值

当然,在创建集合类型时,不限于整数值。Delphi序号类型包括字符和布尔值。

要防止用户键入alpha键,请在编辑控件的OnKeyPress中添加此行:

带枚举的集合

Delphi代码中一个常用的场景是混合枚举类型和集合类型。

下面是一个例子:

问题:是否会显示该消息?答复:没有:(

delphi控件属性中的集合

当需要对TEdit控件中使用的字体应用“粗体”时,可以使用对象检查器或以下代码:

字体的样式属性是集合类型属性!以下是它的定义:

因此,枚举类型TFontStyle用作集合类型TFontStyles的基类型。TFont类的Style属性的类型为TFONTSYLES-因此是集合类型属性。

另一个示例包括MessageDlg函数的结果。MessageDlg函数用于弹出消息框并获取用户的响应。该函数的参数之一是TMsgDlgButtons类型的Buttons参数。

TMsgDlgButtons定义为一组(mbYes、mbNo、mbOK、mbCancel、mbAbort、mbRetry、mbIgnore、mbAll、mbNoToAll、mbYesToAll、mbHelp)。

如果向用户显示包含“是”、“确定”和“取消”按钮的消息,并且如果单击了“是”或“确定”按钮,您希望执行一些代码,则可以使用下一个代码:

最后一句话:布景很棒。对于Delphi初学者来说,集合可能会让人感到困惑,但一旦开始使用集合类型变量,您就会发现它们提供了比一开始听起来更多的功能。

  • 发表于 2021-09-15 04:06
  • 阅读 ( 248 )
  • 分类:IT

你可能感兴趣的文章

如何将媒体文件嵌入delphi可执行文件(rc/.res)(embed media files into a delphi executable (rc/.res))

...止其他人操纵这些加载项文件。 本文将向您展示如何在Delphi可执行文件中嵌入(和使用)声音文件、视频剪辑、动画以及更一般的任何类型的二进制文件。对于最通用的用途,您将看到如何将MP3文件放入Delphi exe中。 资源文...

  • 发布于 2021-09-06 15:08
  • 阅读 ( 189 )

使用delphi的键入文件文件创建数据库

简单地说,文件是某种类型的二进制序列。在Delphi中,有三类文件:类型化、文本和非类型化。类型化文件是包含特定类型数据的文件,例如双精度、整数或以前定义的自定义记录类型。文本文件包含可读的ASCII字符。当我们想...

  • 发布于 2021-09-06 15:11
  • 阅读 ( 170 )

理解delphi项目和单元源文件

简而言之,Delphi项目只是组成由Delphi创建的应用程序的文件集合。DPR是用于Delphi项目文件格式的文件扩展名,用于存储与项目相关的所有文件。这包括其他Delphi文件类型,如表单文件(DFM)和单元源文件(.PASs)。 由于Delphi...

  • 发布于 2021-09-06 15:15
  • 阅读 ( 171 )

德尔福单元剖析(德尔福初学者版)

如果您打算成为一名优秀的Delphi程序员,那么“接口”、“实现”和“使用”等词需要在您的编程知识中占有特殊的位置。 德尔福项目 当我们创建一个Delphi应用程序时,我们可以从一个空白项目、一个现有项目或Delphi的一...

  • 发布于 2021-09-10 20:53
  • 阅读 ( 180 )

delphi的顺序和枚举数据类型

Delphi的编程语言是强类型语言的一个例子。这意味着所有变量必须是某种类型。类型本质上是一种数据的名称。当我们声明一个变量时,我们必须指定它的类型,它决定了变量可以保存的值集以及可以对其执行的操作。 Delphi...

  • 发布于 2021-09-10 23:38
  • 阅读 ( 195 )

理解delphi中的内存分配

从代码中调用函数“DoStackOverflow”一次,您将得到Delphi引发的EStackOverflow错误,并显示消息“stack overflow”。 ​function DoStackOverflow : integer; begin result := 1 + DoStackOverflow; end; 这个“堆栈”是什么?为什么使用上面的代码会...

  • 发布于 2021-09-15 03:47
  • 阅读 ( 189 )

如何用delphi搜索文件和文件夹(search for files and folders with delphi)

...归技术被定义为在代码的中间调用它自己的例程。 为了理解项目中的代码,我们必须熟悉SysUtils单元中定义的下三个方法:FindFirst、FindNext和FindClose。 findfirst FindFirst是使用Windows API调用启动详细文件搜索过程的初始化调用。...

  • 发布于 2021-09-15 03:52
  • 阅读 ( 210 )

了解delphi类(和记录)助手

几年前(早在Delphi 2005中)添加的Delphi语言的一个称为“类助手”的功能旨在通过向类(记录)引入新方法,向现有类(或记录)添加新功能。 下面你将看到更多关于类助手的想法,并了解何时使用和何时不使用类助手。 ...

  • 发布于 2021-09-15 03:55
  • 阅读 ( 170 )

使用delphi获取文件的大小(以字节为单位)

...可能希望格式化显示大小(Kb、Mb、Gb),以帮助最终用户理解数据,而无需转换单位。

  • 发布于 2021-09-15 04:03
  • 阅读 ( 176 )

在delphi中理解和使用记录数据类型

布景还可以,阵列也不错。 假设我们想要为编程社区中的50个成员创建三个一维数组。第一个数组用于名称,第二个数组用于电子邮件,第三个数组用于向我们的社区上传的数量(组件或应用程序)。 每个数组(列表)都...

  • 发布于 2021-09-15 04:05
  • 阅读 ( 193 )
fpi48028
fpi48028

0 篇文章

相关推荐