帮帮忙,改一下代码!

freshstudent 2003-05-28 09:24:48
procedure Tform1.hsv2rgb(Hue:Thue;saturation,value:byte;var red,green,blue:byte);
var
f,h,m,n:Double;
a:integer;
w,y,z:byte;
begin
m:=saturation/255;
if m=0 then //这里出错显示“left side cannot be assigned to”
red:=green:=blue:=value
else
begin
h:=hue/60;
a:=hue div 60;
f:=h-a; //这里显示“incompatible type:‘byte’and‘extended’
w:=value*(1-m);//同上一句同样的错误
y:=value*(1-m*f);//同上一句同样的错误

z:=value*(1-m*(1-f));//同上一句同样的错误

case a of
0: red:=value,green:=k,blue:=m;
1: red:=y,green:=value,blue:=m;
2: red:=w,green:=value,blue:=k;
3: red:=w,green:=n,blue:=value;
4: red:=z,green:=m,blue:=value;
5: red:=value,green:=m,blue:=n;
end;
end;
...全文
22 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
byrybye 2003-06-04
  • 打赏
  • 举报
回复
red:=green:=blue:=value
这句肯定错了,
PASCAL里不允许这样做的,呵呵

f:=h-a; //这里显示“incompatible type:‘byte’and‘extended’
w:=value*(1-m);//同上一句同样的错误
y:=value*(1-m*f);//同上一句同样的错误

错误是,类型不匹配,
把extended 赋 给byte
是不允许的呀。

后面的CASE语句好象也有问题。
自己看看吧

16,749

社区成员

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

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