困扰我的一个小问题,有关canvas的像素,大家教我!(50分)

  • 主题发起人 主题发起人 Jaspers
  • 开始时间 开始时间
J

Jaspers

Unregistered / Unconfirmed
GUEST, unregistred user!
我把form1的底色改为clWhite.
然后请看下面这个比较:
//在OnMouseDown中
if Self.Canvas.Pixels[x,y] = clWhite ....
我查了一下
Self.Canvas.Pixels[x,y] = -1
clWhite = 16777215,即$00FFFFFF,其实也是-1
奇怪的是,我直接运行,结果为true,但是单步运行结果却为false.
[h1]why[/h1]
我要做一个画图程序,这个问题不能解决,就做不下去了,
大家救我啊!
再问一个问题,如何取得canvas的底色(background color),
好象没有canvas.bgcolor属性,也没有getpixel函数...
多谢
 
估计,你那两次x 和 y的值不等吧
要不然应该是一样的
 
Canvas绘制的程序不好调的,只要这一句:
if Self.Canvas.Pixels[x,y] = clWhite
是对的就OK了,单步运行时Canvas已经不是你的程序的了;

一般Canvas.Brush.Color为背景色,Canvas.Pen.Color为前景色。
 
只有一次啊
if Self.Canvas.Pixels[x,y] = clWhite

请问如何取得canvas的象素?
 
Canvas.Pixels[x,y]就是象素啊。
 
to thx1180:
多谢
原来这样单步跟踪是不行的...
 
定义一个变量
var pixcolor:Tcolor
pixcolor:=form1.Canvas.Pixels[x,y]
这时pixcolor里的值就是该点的颜色值
 
多人接受答案了。
 
后退
顶部