下面的代码可以实现橡皮擦的功能?MovePt可用来记录鼠标当前位置?是一个变量?
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);beginif Drawing thenbeginDrawShape(Origin, MovePt, pmNotXor);MovePt := Point(X, Y);DrawShape(Origin, MovePt, pmNotXor);end;   MovePt用来记录鼠标当前位置。当下次鼠标移动时, 就能在上次鼠标绘制的图形上画一个形状、大小一样的图形,并把画笔颜色设置成PmNotXor,使上次绘制的图形颜色变成了屏幕颜色,从而达到“橡皮擦”的效果。Style属性设置成用户希望的值,可实现对画笔和画刷风格的选择。 

解决方案 »

  1.   

    用Canvas吧
    Pen.Mode :=   pmCopy; 
    Brush.Style:=     bsClear; 
    Brush.Color:=clWhite;

    试试
      

  2.   

    DrawShape是不是自定义函数呀?
      

  3.   

    代码给的太少了,而且DrawSharp函数没有给出来,不好判断
      

  4.   

    DrawShape是自定义的
    先在上次的地方画,然后移动到新坐标再画新图形
      

  5.   

    哈哈,我状态刚刚完成,代码就1行,很简单 image1.Canvas.FillRect(Rect(0,0,_bmp.Width,_bmp.Height));//清空
    IMAGE1.Canvas.FillRect(ret);//橡皮擦ret是TRECT类型
      

  6.   

    没有看明白,要添加image1控件,背景颜色也不用管了。