2016-03-31 9 views
1

У меня есть TTrackBar и TMediaPlayer, я ищу способ изменить позицию TTrackBar в соответствии с положением TMediaPlayer с помощью функции LiveBindigs.Синхронизация TMediaPlayer.Position и TTrackBar.Position через LiveBindings

Проблема заключается в том, что на TMediaPlayer нет события для просмотра изменений свойства TMediaPlayer.Position, поэтому мой TTrackBar.Position не может синхронизировать.

Можно ли просматривать изменения свойства компонента без запуска события?

ответ

2

Невозможно контролировать изменения определенного имущества без соответствующего события.

И вы не хотите, чтобы какое-либо событие было привязано к свойству MediaPlayer.Position. Зачем?

Например, при воспроизведении позиции видео изменяется для каждого кадра, который предусматривает, что при воспроизведении видео с 30 FPS такое событие будет запущено 30 раз в секунду. Поэтому в зависимости от кода в этом случае он может быстро привести ваше приложение в обход.

Лучшее предложение, которое я могу вам дать, это установить таймер на вашу форму, а затем проверить определенные позиции в проигрывателе, чтобы обновить TrackBar. Я считаю, что один второй интервал будет более чем достаточно, но вы можете сделать его короче, если хотите.

Просто убедитесь, что если вы также используете TrackBar для поиска возможности использовать некоторую управляющую переменную, чтобы узнать, обновляется ли позиция TrackBar пользователем или вашим таймером. Другие тиски вы в конечном итоге со странным заиканием (случилось со мной в первый раз).

Что касается достижения всего этого с помощью LiveBindings, я не думаю, что это возможно.

+0

Благодарим за ответ! Вы дали мне альтернативное решение с ** TTimer ** obeject. – WellingtonD

 Смежные вопросы

  • Нет связанных вопросов^_^