使用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 some repaints to reduce flickering
if (x mod 7 = 1) then begin
Form1.Repaint;
Sleep(50);
end;
end;
很不幸,在运行此过程时仍会出现明显的闪烁。
我的问题是: 有没有办法使动画更加平滑(没有任何闪烁)?
编辑: 为了使动画更加平滑,在sleep(50)中将50更改为更小的数字,并删除此行:
if(x mod 7 = 1) then begin