delphi在image图片上画随鼠标动态画矩形,如何消除以前的矩形,不发生重叠

delphi在image图片上画随鼠标动态画矩形,怎么消除以前的矩形,不发生重叠


procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   CurrentRect.Left:=x;
   CurrentRect.Top:=y;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  CurrentRect.Right:=x;
  CurrentRect.Bottom:=y;
  if(ssLeft   in   shift) then
  begin
     Canvas.Brush.Style   :=   bsclear ;
     image1.Canvas.Rectangle(CurrentRect);
  end;
end;
有没有人指点一下,最好能够自已测试一下,网上都说照着重画一下,就可以擦除,感觉还是有些问题,希望谁能够编个测试代码给我看看,谢谢!
------解决方案--------------------
  if(ssLeft in shift) then
  begin
    image1.picture.Graphic:=nil;
    image1.Parent.DoubleBuffered:=true;
    Canvas.Brush.Style := bsclear ;
    image1.Canvas.Rectangle(CurrentRect);
  end;
------解决方案--------------------
另一种方法是画在目标控件的canvas上,每次重新加载image
或者画在form 的canvas,他的刷新会擦除以前的矩形
------解决方案--------------------
那用2个image
image2加载图片作底图,image1没图片,用来绘画

image1设置transparent为True