type
Size=(sSmall=5,sMedium=10,sLarge=sSmall+sMedium);
var
X:Size;
begin
X:=sSmall; //Ord(X)=5
X:=Size(6); //Ord(X)=6 **********
X:=Succ(X); //Ord(X)=7
end.
我不明白**********处的代码
为什么是6?谢谢了。
解决方案 »
- 如何利用Webbroeser逐个访问ListBox里面的网址
- 喜欢[僵哥]是不变的事实
- 有关打开PDF格式文件的问题
- DELPHI如何调用VB写的一个API工程文件(里包含一个生成的DLL文件),能否通过直接调用DLL来操作文件里面的API函数
- 求救:怎样用代码实现录音设备的自由选择?是LINE IN 还是MIC。
- 吝啬鬼也散分了!!快来
- Excel200工坐表中有几个checkbox,如何用delphi控制他们的状态。
- 如何将数组作为一个参数传递到函数或者过程中
- 征求软件测试的想法
- 第3方控件怎么加近去呀,怎么用呀?
- fr导出EXCEL,图片不能压缩
- 有人碰到过这个问题吗,没有加入其它dll的form,但是却可以uses
应该是初始化,但在这里是多余的,因为后面的X:=Size(6);已经把X改变了X:=Size(6);
是取枚举Size中序号为6的元素,但Size中没有序号为6的元素,所以X的值不确定,但此时X的序号是6X:=Succ(X);
是取下一个元素,由于原來X的序号是6,所以执行这句后X的序号变为7;但Size中也没有序号为7的元素,所以X的值也不确定如果改成下面这样定义,最后X的值是sXXOO
type Size=(sSmall=5,sXXOO=7,sMedium=10,sLarge=sSmall+sMedium);
size(6)的功能,也是强制类型转换,他只是告诉编译器不要做类型检查而已,不要有想太多。