枚举类型

枚举类型


枚举类型又是一种自定义有序类型。在枚举类型中,你列出所有该类型可能取的值,而不是指定现有类型的范围。换句话说,枚举类型是个可取值的序列。见下例:

type
 Colors = (Red, Yellow, Green, Cyan, Blue, Violet);
 Suit = (Club, Diamond, Heart, Spade);

序列中每个值都对应一个序号,序号从 0 开始计数。使用 Ord 函数,即可得到一个枚举类型值的序号。例如,Ord (Diamond) 返回值 1。

注意:枚举类型有多种内部表示法。缺省时,Delphi 用
8 位表示法;如果有多于 256 个不同的值,则用 16 位表示法。还有一种 32 位表示法,需要与 C、C++ 库兼容时会用到。使用 $Z 编译指令可改变缺省设置,请求更多位的表示法。

Delphi VCL(可视控件库)在很多地方用了枚举类型。例如,窗体边框类型定义如下:

Type
 TFormBorderStyle = (bsNone, bsSingle, bsSizeable,
   bsDialog, bsSizeToolWin, bsToolWindow);

当属性值是枚举类型时,你可以从 Object Inspector 显示的下拉列表框中选值,如图 4.1 所示。

图 4.1 Object Inspector 中的枚举类型属性


Delphi 帮助文件中列出了各种 Delphi VCL 枚举类型的可能值。你也可以通过 OrdType 程序(可从 www.marcocantu.com 下载)查看 Delphi 枚举类型、集合类型、子界类型及任何其他有序类型的取值列表。图4.2 为这个例子的输出结果。

图 4.2: 程序 OrdType 显示的枚举类型详细信息


联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678