问题(50分)

  • 主题发起人 主题发起人 delphi_hzj
  • 开始时间 开始时间
D

delphi_hzj

Unregistered / Unconfirmed
GUEST, unregistred user!
给我解决个问题:
我想实现一个图片的移动,像FLASH一样,代码如下:
procedure TForm1.Timer2Timer(Sender: TObject);
begin 
if Image1.left>-200 then
Image1.left:=Image1.left-1
else
Image1.left:=584
end;   为什么在移动过程中图片会闪烁呀,这样很不好看,比FLASH差多了?有什么好办法吗?
 
我好象见过,好象是将image放在panel中,移动panel就可以了,你试试
 
据说设置DoubleBuffered:=True;就可以了,偶没实验过。
 
同意楼上,利用双缓冲的概念。

procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered :=True;
end;

 
嘻嘻,我好像就是听雪雪说的。
 
不错,只要将DoubleBuffered:设置成True;就可以了。
事实上DoubleBuffered是TWinControl的一个属性,默认为false,这时所有Twin控件都是直接
paint到窗体上去的,所有会闪烁。
修改后的程序如下:
DoubleBuffered:=True;
if Image1.left > 400 then
Image1.left:=Image1.left-1
else
Image1.left:=584
这样就不会闪烁了。
 
将DoubleBuffered:设置成True
最好在下面有一个PANEL ,是单数个就没问题了.
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
612
import
I
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
571
import
I
后退
顶部