使用Delphi XE2我想在delphi应用程序中移动一些按钮. 我写了这段代码: procedure TForm1.DoSomething;var x : integer;begin for x := 200 downto 139 do begin // move two buttons Button1.Top := x; Button3.Top := x; // skip s
我写了这段代码:
procedure TForm1.DoSomething; var x : integer; begin for x := 200 downto 139 do begin // move two buttons Button1.Top := x; Button3.Top := x; // skip some repaints to reduce flickering if (x mod 7 = 1) then begin Form1.Repaint; Sleep(50); end; end;
不幸的是,在运行此过程时,它仍然会显着闪烁.
这是我的问题:
有什么办法可以使动画流畅(没有任何闪烁)?
编辑:
要使动画更流畅,请在睡眠时将50更改为更小的值(50)并删除此行:
if(x mod 7 = 1) then begin将Form1.DoubleBuffered设置为True.您可以在代码中执行此操作,但我认为该属性是在XE2中发布的,因此您也可以在Object Inspector中进行设置.