我有一個帶有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