在其他现代语言中找不到的Delphi语言特性之一是集合的概念。
Delphi的集合类型是相同序号类型的值的集合。
使用关键字集合定义集合:
集合类型通常用子范围定义。
在上述示例中,TMagicNumber是一种自定义子范围类型,允许TMagicNumber类型的变量接收1到34之间的值。简单地说,子范围类型表示另一个序号类型中的值的子集。
集合类型的可能值是基类型的所有子集,包括空集合。
集合的一个限制是它们最多可以容纳255个元素。
在上面的示例中,TMagicSet类型是一组TMagicNumber元素-从1到34的整数。
声明TMagicSet=TMagicNumber集合等于以下声明:TMagicSet=集合1..34。
在上面的示例中,变量emptyMagicSet、oneMagicSet和anotherMagicSet是TMagicNumber的集合。
要为集合类型变量赋值,请使用方括号并列出集合的所有元素。例如:
注1:每个集合类型变量都可以保存空集合,用[]表示。
注2:一个集合中元素的顺序没有意义,一个集合中包含两次元素(值)也没有意义。
要测试集合(变量)中是否包含元素,请使用in关键字:
就像两个数字求和一样,你可以得到一个集合,它是两个集合的总和。使用集合,您的事件具有更多运算符:
下面是一个例子:
是否将执行ShowMessage过程?如果是,将显示什么?
下面是DisplayElements函数的实现:
提示:是的。显示:“18 | 24 |”。
当然,在创建集合类型时,不限于整数值。Delphi序号类型包括字符和布尔值。
要防止用户键入alpha键,请在编辑控件的OnKeyPress中添加此行:
Delphi代码中一个常用的场景是混合枚举类型和集合类型。
下面是一个例子:
问题:是否会显示该消息?答复:没有:(
当需要对TEdit控件中使用的字体应用“粗体”时,可以使用对象检查器或以下代码:
字体的样式属性是集合类型属性!以下是它的定义:
因此,枚举类型TFontStyle用作集合类型TFontStyles的基类型。TFont类的Style属性的类型为TFONTSYLES-因此是集合类型属性。
另一个示例包括MessageDlg函数的结果。MessageDlg函数用于弹出消息框并获取用户的响应。该函数的参数之一是TMsgDlgButtons类型的Buttons参数。
TMsgDlgButtons定义为一组(mbYes、mbNo、mbOK、mbCancel、mbAbort、mbRetry、mbIgnore、mbAll、mbNoToAll、mbYesToAll、mbHelp)。
如果向用户显示包含“是”、“确定”和“取消”按钮的消息,并且如果单击了“是”或“确定”按钮,您希望执行一些代码,则可以使用下一个代码:
最后一句话:布景很棒。对于Delphi初学者来说,集合可能会让人感到困惑,但一旦开始使用集合类型变量,您就会发现它们提供了比一开始听起来更多的功能。
...止其他人操纵这些加载项文件。 本文将向您展示如何在Delphi可执行文件中嵌入(和使用)声音文件、视频剪辑、动画以及更一般的任何类型的二进制文件。对于最通用的用途,您将看到如何将MP3文件放入Delphi exe中。 资源文...
简单地说,文件是某种类型的二进制序列。在Delphi中,有三类文件:类型化、文本和非类型化。类型化文件是包含特定类型数据的文件,例如双精度、整数或以前定义的自定义记录类型。文本文件包含可读的ASCII字符。当我们想...
简而言之,Delphi项目只是组成由Delphi创建的应用程序的文件集合。DPR是用于Delphi项目文件格式的文件扩展名,用于存储与项目相关的所有文件。这包括其他Delphi文件类型,如表单文件(DFM)和单元源文件(.PASs)。 由于Delphi...
如果您打算成为一名优秀的Delphi程序员,那么“接口”、“实现”和“使用”等词需要在您的编程知识中占有特殊的位置。 德尔福项目 当我们创建一个Delphi应用程序时,我们可以从一个空白项目、一个现有项目或Delphi的一...
Delphi的编程语言是强类型语言的一个例子。这意味着所有变量必须是某种类型。类型本质上是一种数据的名称。当我们声明一个变量时,我们必须指定它的类型,它决定了变量可以保存的值集以及可以对其执行的操作。 Delphi...
从代码中调用函数“DoStackOverflow”一次,您将得到Delphi引发的EStackOverflow错误,并显示消息“stack overflow”。 function DoStackOverflow : integer; begin result := 1 + DoStackOverflow; end; 这个“堆栈”是什么?为什么使用上面的代码会...
...归技术被定义为在代码的中间调用它自己的例程。 为了理解项目中的代码,我们必须熟悉SysUtils单元中定义的下三个方法:FindFirst、FindNext和FindClose。 findfirst FindFirst是使用Windows API调用启动详细文件搜索过程的初始化调用。...
几年前(早在Delphi 2005中)添加的Delphi语言的一个称为“类助手”的功能旨在通过向类(记录)引入新方法,向现有类(或记录)添加新功能。 下面你将看到更多关于类助手的想法,并了解何时使用和何时不使用类助手。 ...
...可能希望格式化显示大小(Kb、Mb、Gb),以帮助最终用户理解数据,而无需转换单位。
布景还可以,阵列也不错。 假设我们想要为编程社区中的50个成员创建三个一维数组。第一个数组用于名称,第二个数组用于电子邮件,第三个数组用于向我们的社区上传的数量(组件或应用程序)。 每个数组(列表)都...