就像firetoucher(风焱) 说的,不要用Image,自己绘,很简单的嘛,就一行代码搞定。 至于interval,假设改变Image位置的代码本身需要执行100毫秒,你设置为1又有什么用呢。var X, Y:Integer;procedure TForm1.Timer1Timer(Sender: TObject); begin Inc(X); Canvas.Draw(X, Y, Bitmap1); end;procedure TForm1.FormPaint(Sender: TObject); begin Canvas.Draw(X, Y, Bitmap1); end;
2 利用DoubleBuffered 或者内存dc bitblt的效率比自己直接paint都高,应该在2-3ms以内
没问题的
仍旧会闪烁!
至于interval,假设改变Image位置的代码本身需要执行100毫秒,你设置为1又有什么用呢。var X, Y:Integer;procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inc(X);
Canvas.Draw(X, Y, Bitmap1);
end;procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Draw(X, Y, Bitmap1);
end;
Image.Visible:=False;
说的极有道理,直接画到form上,你的图片之所以闪烁是因为form需要刷新的缘故。