我有一个带有TTimer(timAnimateDataChange)的TFrame(fraDisplay)。计时器用于控制小动画。在含有所述帧的形式我想有做了这样的方法:我该如何等待TTimer完成?
procedure TForm.DoStuff;
begin
DoSomeLogicStuff;
fraDisplay.AnimateResult;
WaitForAnimationToFinish;
DoSomeOtherLogicStuff;
fraDisplay.AnimateEndResult;
WaitForAnimationToFinish;
fraDisplay.Finalize;
end;
的动画是基本上重绘一个TImage32的,由计时器计时。计时器在完成时将自动禁用它,并且该框架具有一个名为AnimationRunning的布尔属性,当动画完成时它将被设置为false。
没有任何线程或类似的东西来使事情复杂化或有所帮助。
问题是,我该如何实现WaitForAnimationToFinish方法?
(顺便说一句,这不是一个很好的解决方案:
procedure TForm.WaitForAnimationToFinish;
begin
repeat
Application.ProcessMessages;
until not fraDisplay.AnimationRunning;
end;
,因为尽管该方法可以运行:-( 计时器不会闪光)
听起来像一个很好的建议。不幸的是,我仍然在2007年:-(无论如何,还有几个月的时间) – 2009-11-22 19:19:04
这也适用于没有匿名方法,只需要多一点代码:) – 2009-11-22 19:21:20