可以理解为C中UNION。即0和1共享同一块内存。由于TPoint所占用的内存恰好是两个Integer,所以Left,Top和TopLeft等价。同理Right,Bottom和BottomRight等价。
又由于TPoint由x,y组成,所以TopLeft.x实际上就是Left所占有的内存,正因为这样,所以定义不会发生任何冲突。
同样的概念,Delphi在Messages单元,大量的重定义了各种消息结构。
又由于TPoint由x,y组成,所以TopLeft.x实际上就是Left所占有的内存,正因为这样,所以定义不会发生任何冲突。
同样的概念,Delphi在Messages单元,大量的重定义了各种消息结构。
解决方案 »
- 请教:如何设置datetimepicker从星期一开始?
- 不会打印啊,烦恼中。谁教下我打印简单的。。
- 怎么把大量图片打包
- 高分请教:OleVariant赋值问题
- 将table中的数据保存到文本文件中,怎样对这个文件加密?
- 怎样读取文本文件中某个位置的内容
- 请问:如何在 delphi 中利用 vba 调用 access 的表,导出到 .txt 文本文件的功能
- 大家好,请教一个问题,用interbase见表出现如下问题怎么解决,在线等待,谢谢了!
- 请诸位帮我分析错误原因
- Delphi中如何调用query的查询结果,出现下面问题!!
- 请教谁能提供windows2000风格的OpenDialog构件下载?
- 如何激活窗口??????????
但还请补充说明一下,case integer或case 枚举类型,然后总是从0,1...
列举各种情况,每种情况都共享同一块内存,这是不是一种约定呢?我想不太通的(其实是有点不习惯)是为什么不是另一种列举格式,因为case的常用方式是case 有序变量,其中变量是有赋值的,
按这种方式,则么判断可变记录中integer的值何时是0,何时是1...期待您的答案!:)
还有一种,就是传统的类似于C中的UNION,用来节约内存的,这是通常需要指示的变量,来表明内存中到的是多少。比如
TTest = record
case testtype:Integer of
0:(a: Integer);
1:(b: Double);
2:(c: string[10]);
end;