• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API

★★★快来抢100分★★★:用canvas画图的怪事,你碰到过没有?

deak 2001-08-27 04:30:12
代码如下:
with image1.canvas do
begin
brush.Style :=bssolid;
brush.Color :=clwhite;
ellipse(100,100,110,110);
brush.Color :=clred;
ellipse(200,200,210,210);
end;

当brush.Color 设为白色时,不能显示画出的图形,
设为其他颜色时,却能显示画出的图形,why?
form背景为黑色

...全文
187 点赞 收藏 12
写回复
12 条回复
deak 2001年08月28日
thank you,佩服佩服!!!
回复 点赞
chechy 2001年08月28日
Image当然是透明的,但是Image的Canvas的底色却是白色。所以我的代码无非是将底色改成兰色而已。这样你就能看见白圈了。否则白色的底色怎么能看到白圈呢?就像在黑屋子里面抓一只黑猫一样。
回复 点赞
deak 2001年08月28日
to tikkypeng:把Form底色设成白色照样是能看到有一个黑圈
但把Form底色设成黑色却不能看到有一个白圈,why?
这是关键所在!


回复 点赞
deak 2001年08月28日
我用的是delphi6+win98
to chechy:你是说image1的底色还是form1.的底色
image1的底色是透明的,form1.的底色为黑色;
你那种方法虽然可行,但为什么要先FillRect(Rect(0, 0, image1.Width, image1.Height));
透明的难道不行吗?
回复 点赞
yqh 2001年08月27日
奇怪,我怎么好使。肯定是你的系统有错误
回复 点赞
qiandeng 2001年08月27日
是不是调色板乱了
回复 点赞
tikkypeng 2001年08月27日
不对~~他的程序就是把Form底色设成白色照样应该能看到有一个黑圈
回复 点赞
chechy 2001年08月27日
如果是白色,当然看不出来了。你试试这个代码:

with image1.canvas do
begin
Pen.Color := clGreen;
brush.Style := bssolid;
brush.Color := clBlue;
FillRect(Rect(0, 0, image1.Width, image1.Height));
brush.Color := clwhite;
ellipse(100, 100, 110, 110);
brush.Color := clred;
ellipse(200, 200, 210, 210);
end;
回复 点赞
chechy 2001年08月27日
你的底色是白色吗?还是其他颜色?
回复 点赞
deak 2001年08月27日
to chechy:我是说画出的图形的填充颜色,当brush.Color 设为白色时,不能显示画出的图形的
的填充颜色为白色,
设为其他颜色时,却能显示画出的图形的填充颜色
回复 点赞
monsterking 2001年08月27日
底色是白色的啦。
回复 点赞
chechy 2001年08月27日
你的问题总是那么奇怪,为什么我就没碰见呢?
不行你就加一句
Pen.Color := clYellow;
回复 点赞
发动态
发帖子
Delphi
创建于2007-08-02

1471

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告