TTimer (timAnimateDataChange)가 포함 된 TFrame (fraDisplay)이 있습니다. 타이머는 작은 애니메이션을 제어하는 데 사용됩니다.TTimer가 끝날 때까지 어떻게 기다려야합니까?
procedure TForm.DoStuff;
begin
DoSomeLogicStuff;
fraDisplay.AnimateResult;
WaitForAnimationToFinish;
DoSomeOtherLogicStuff;
fraDisplay.AnimateEndResult;
WaitForAnimationToFinish;
fraDisplay.Finalize;
end;
애니메이션이가 기본적으로 TImage32의 다시 그리기, 타이머에 의해 시간이 초과 : 프레임을 포함하는 형태로이 같은 일을하는 방법을 갖고 싶어. 완료되면 타이머가 자동으로 비활성화되며 프레임에는 AnimationRunning이라는 부울 속성이 있습니다.이 속성은 애니메이션이 끝날 때 false로 설정됩니다.
문제가 복잡하거나 도움이되는 내용이 없습니다.
질문은 어떻게 WaitForAnimationToFinish 메서드를 구현합니까?
은 (, BTW이 좋은 해결책이 아니다 :
procedure TForm.WaitForAnimationToFinish;
begin
repeat
Application.ProcessMessages;
until not fraDisplay.AnimationRunning;
end;
방법은 :-(실행되는 동안 타이머가 발생하지 않습니다 때문에)
좋은 제안처럼 들립니다. 불행히도 저는 2007 년에 아직도 있습니다 :-((더 이상, 어쨌든 몇 달 동안) –
이것은 익명의 방법 없이도 작동합니다. 단지 조금 더 많은 코드가 필요합니다 :) –