画图!!!(100分)

  • 主题发起人 主题发起人 trancechow
  • 开始时间 开始时间
T

trancechow

Unregistered / Unconfirmed
GUEST, unregistred user!
要像windows画板那样画矩形,如果在鼠标的move事件里将pen.mode设置为pmNotXor,擦一次,画一次,效果不好,矩形在变换大小的时候不能保持一个填充颜色,如何做到windows画板的那种效果
 
今天下班了
改天。。。
 
急切关注!
 
保持一个填充颜色是指什么?
 
就是在鼠标拖动的过程中,矩形内始终是一种颜色,不会因为被覆盖的背景颜色而使本身的颜色反相,示意请看http://www.ioldchow.com/kkk.JPG
 
Canvas.Brush.Style := bsClear;

看看{$Delphi}/Demos/Doc/Graphex的例子,对你有帮助
 
这就是那个例子的情况呀
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Canvas.Pen.Color := clred;
Form1.Canvas.MoveTo(10,10);
Form1.Canvas.LineTo(300,300);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Canvas.Pen.Color := clbtnface;
Form1.Canvas.MoveTo(10,10);
Form1.Canvas.LineTo(300,300);
end;
 
这个办法不行,那又什么办法可以清楚paintbox的内容(不是用一种颜色填充)
 
to trancechow,
你改个颜色不就行了
 
那我原来画面上的颜色难道不要了吗?
 
我试着用一个透明的image,每次都用透明色把原来那个擦掉,可是速度相当的慢,我同学用mfc写过一个,好像没这样的问题,请大家帮帮忙,我好急呀
 
关注!
我顶!
 
我试过用一个透明的label辅助,每次都用image上面的对应坐标点的颜色来擦去label上的颜色,不过是用在画没有填充的圆,不知道对你那个行不行,速度很快
 
我个人认为上面的答案都不符合要求!
急切关注!
 
to trancechow
把你的代码发给我,我看看

liuyj_74@163.com
 
老人家,我现在采用的画图方法就是{$Delphi}/Demos/Doc/Graphex的例子,但是觉得效果不好
 
garlic_li你所说的“每次都用image上面的对应坐标点的颜色来擦去label上的颜色”怎么实现阿?其实我想如果能加上一个辅助的paintbox,第一次把paintbox内容清空,第二次再画上,也可以达到相通的效果,可是怎么把paintbox的内容清空的,或者把label的canvas清空也可以
 
后退
顶部