请教一个类型定义

zhourongbiao 2005-10-11 02:05:37
ColorConvert 是个什么呀?不太明白。
function SetShaddow(color:TColor):TColor;
type
ColorConvert = record
case byte of //这是什么意思?
0 : (z:TColor);
1 : (a,b,c,d : byte);
end;
begin
ColorConvert(result).a:=ColorConvert(color).a div 2;
ColorConvert(result).b:=ColorConvert(color).b div 2;
ColorConvert(result).c:=ColorConvert(color).c div 2;
ColorConvert(result).d:=ColorConvert(color).d div 2;
end;
...全文
67 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinasdp 2005-10-11
  • 打赏
  • 举报
回复
ColorConvert = record
case byte of //这是什么意思?
0 : (z:TColor);
1 : (a,b,c,d : byte);
end;
可变记录,和C中的共用体(union)一样。

借用Delphi5开发人员指南中的一段话:

Object Pascal也支持可变记录,它允许在记录中不同的数据共同覆盖相同的内存。不要跟Variant数据类型相混淆,可变记录允许彼此覆盖的数据能被单独访问。如果对C / C + +语言很熟悉,你一眼就
能看出来它跟C / C + +中的union概念一样

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧