我想在FORM里产生一个球运动的效果,我采用的方法是:用canvas的ellipse在屏幕上随机的画一个圆。但是我遇到一个问题就是我不知道怎么把之前画的圆给消除,请大侠闷帮忙!
procedure TForm1.Timer1Timer(Sender: TObject);
var m,n : integer;
begin
with canvas do
   begin
      m := random(Form1.Width);
      n := random(Form1.Height);
      moveto(m,n);
      ellipse(m - 20,n - 20,m + 20,n + 20);  //画圆
                   ← 请大侠们帮我在这里添加几个语句,去除之前画的圆
   end;
end;
如果不采用这种办法,还有什么方法实现秋运动的效果啊?请赐教!我是个新手,有劳XDJM们了。

解决方案 »

  1.   

    canvas.pen.style 好像有个异或笔,具体你看帮助,再画一次就消失了
      

  2.   

    就这10分靠,  另外我不喜欢你的大小写不分
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      ExtCtrls;type
      TForm1 = class(TForm)
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        FPreX, FPreY: Integer;
        FFlag: Boolean;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      with Canvas do
      begin
        if FFlag then
          Ellipse(FPreX - 20, FPreY - 20, FPreX + 20, FPreY + 20);
        FPreX := Random(Form1.Width);
        FPreY := Random(Form1.Height);
        MoveTo(FPreX, FPreY);
        Ellipse(FPreX - 20, FPreY - 20, FPreX + 20, FPreY + 20);
        if not FFlag then FFlag := True;
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FFlag := False;
      Canvas.Pen.Mode := pmNotXor;
    end;end.
      

  3.   

    我是刚上CSDN的啊,不知道分有什么用处,你要分,我给你啊!不过给不了你很多的,我一共150分啊。至于大小写不分我会注意的,谢谢你们啊!
      

  4.   

    To : DWGz()
    用你的方法不行 啊??还有人帮我解决下吗?