我在image的canvas上作如下工作:在任意鼠标点击处(posx,posy)画圆
var
  r1:TRect;
begin 
  r1.left:=posx-1;
  r1.top:=posy-1;
  r1.right:=posx+1;
  r1.bottom:=posy+1;
  image1.Canvas.Pen.Color:=clred;
  image1.Canvas.Brush.Color:=clred;
  image1.Canvas.Ellipse(r1);
现在想清除这些圆点,试了canvas.repaint  canvas.refresh都不管用,该如何解决?

解决方案 »

  1.   

    建议用两个Image控件一个背景
    一个作图
      

  2.   

    zhmnsw(糖醋鼻子),如果用2个iamge,一个当背景(比如画50*50的网格),一个画图(任意的圆点),画点时有很长的延时,怎么解决?
      

  3.   

    csdnloading(楼顶主人) ,我要清除所有的圆点啊!不是就一个圆点
      

  4.   

    alimyso(杨桦) 能说清楚点吗?
      

  5.   

    Image1.Picture.Bitmap.LoadFromFile(文件路径)
      

  6.   

    双指针 作图软件我写过 都是用指针记录画前的Image 如果画上是不好清除的方法是在画前把当前Image给一个指针记录 然后进行画图, 不保存就恢复以前的再用一个 记录原始Image 擦除时取对应坐标的值 ,有需要给你个mome
      

  7.   

    duxin(小伍),不太明白你说的意思,给我个memo吧,[email protected]
      

  8.   

    这个太简单了;在绘图前加入  Image1.Canvas.Brush.Color := ClWhite;  //清除原来的图象为白色
      Image1.Canvas.FillRect(Canvas.ClipRect);
      

  9.   

    建立一个链表:
    type pRect=^recordRect;
         recordRect=record
         originP,finalP:TPoint;
         rectColor:TColor;
         fillColor:TColor;
         next:pRect;
         end;不就可以undo了吗?