• 0
d7d1cd

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

Вопрос

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

GordonbanO, KennethDon и AgrikBus понравилось это

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


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

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

  • 0

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

Brovin Yaroslav понравилось это

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


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

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

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

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


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

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

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

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

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

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

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

 

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

Brovin Yaroslav понравилось это

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


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

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

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

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

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


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

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу