我想在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们了。
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们了。
解决方案 »
- [DCC Fatal Error] F2039 Could not create output file 'Project2.exe'
- DELPHI中播放局域网视频文件
- 一个简单的SQL查询语句
- 首次用XMLDocument控件,急啊
- 关于文件上传数据库的问题。。。。。。。。
- 两个不同的数据库中如何倒入数据?在线等待!!
- 最基本的问题
- dxdbgrid 导出到 EXCLE 字数限制
- 为什么在Text控件的KeyPress事件中检测不到方向键的键码?
- Delphi如何获取系统版本号是windowsXP还是Win7
- 用SQL语句WHERE时,如何从某个字段中取出前两个字符和某个字符相比较?
- 在richedit中,如何能作到像delphi编辑器注释那样,输入字符(//)注释掉一行。
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.
用你的方法不行 啊??还有人帮我解决下吗?