• 0
d7d1cd

Возможно ли запустить анимацию с задержкой на время анимации?

Вопросы

Привет всем. Есть, например, ColorAnimation. Запуск происходит вручную: ColorAnimation->Start(). Вопрос: возможно ли запустить анимацию так, чтобы код, который находится после кода на запуск анимации, начал выполняться только когда закончится время анимации?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 ответа на этот вопрос

  • 0

У анимации есть событие OnFinish, вам необходимо переопределить его на свой обработчик(код). Код будет выполняться только после завершения работы анимации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

У меня такая ситуация: анимация запускается при нажатии на кнопку в диалоговом окне. У кнопки ModalResult имеет не нулевое значение (для того чтобы я знал, на какую кнопку нажали в диалоге). Соответственно, при нажатии на кнопку, обработчик нажатия на кнопку запускает анимацию и тут же прекращает свою работу, а так как ModalResult не равен 0, то форма тут же закрывается. Анимацию я не наблюдаю нисколько.

Я понимаю, что можно решить эту задачу другими путями, но может быть есть оригинальное решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Andrey Yefimov написал Вам правильное решение.

У любого объекта-анимации есть событие OnFinish.

Вам нажно назначить (либо переопределить) обработчик этого события.

Т.е. решение, примерно, такое:

  • нажимая на кнопку, запускаете анимацию (и не нужно ничего больше выполнять, так как нужно дождаться когда анимация закончится)
  • когда анимация закончится (возникнет событие OnFinish), выполните необходимые действия (вызовите в обработчике данного события процедуры/функции)

и никаких ModalResult в данном случае не нужно...

 

P.S. И еще. Если нужно, чтобы при нажатии на кнопку сначала что-то отработало в GUI (какой-то код, например, та же анимация), а лишь потом выполнить что-то далее (в том же обработчике нажатия на кнопку), то Вам требуется синхронизация в основном потоке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Как то немного сложно :)

У меня окно, в котором идет анимация, которую надо ждать, вызывается в модальном режиме. Если я не буду кнопкам назначать ModalResult, то как я узнаю, что нажал пользователь? Ну да ладно. Это все решаемо. Тут все как бы легко.

А что значит Ваш постскриптум? Можно поподробнее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу