实现OnMouseMove事件
每次响应,现擦除旧坐标线,恢复原图象,然后画新坐标线

解决方案 »

  1.   

    TO:stoneg(石头) 
    用异或方式作图即可,不需恢复原图象
      

  2.   

    定义一个类变量:
      Oldx,Oldy: Integer;procedure TForm1.MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      Canvas.Brush.Style := bsClear;
      Canvas.Pen.Color := clWhite;
      Canvas.Pen.Mode := pmXor;
      Canvas.Line(Oldx-20,Oldy,Oldx+20,Oldy);
      Canvas.Line(Oldx,Oldy-20,Oldx,Oldy+20);
      Oldx := x;Oldy := y;
      Canvas.Line(x-20,y,x+20,y);
      Canvas.Line(x,y-20,x,y+20);
    end;
      

  3.   

    为了擦除旧坐标线,恢复原图象,然后画新坐标线 关键Canvas.Pen.Mode := pmXor(与背景异或操作)
    另外可以参好一下帖子:
    http://www.csdn.net/expert/topic/96/96884.shtm