我有一个TTrackBar和一个TMediaPlayer,我正在寻找一种方法来使用LiveBindigs功能根据TMediaPlayer位置更改TTrackBar位置。
问题是,TMediaPlayer上没有事件可以观察TMediaPlayer.Position
属性的更改,因此我的TTrackBar.Position
无法同步。
是否可以在不触发事件的情况下观察组件属性的更改?
答案 0 :(得分:2)
如果没有合适的事件,不可能监控某些财产的变化。
您也不希望任何绑定到MediaPlayer.Position属性的事件。为什么?
例如,当您正在播放视频时,每个帧都会更改一个位置,以便在播放具有30 FPS此类事件的视频时每秒会被触发30次。因此,根据该事件中的代码,它可以快速使您的应用程序爬行。
所以我可以给你的最佳建议是在你的表格上放置一个计时器,然后在一定的时间间隔内检查媒体播放器的位置以更新你的TrackBar。我相信一秒钟的间隔就足够了,但如果你愿意,可以缩短它。
如果您还使用TrackBar来寻求使用某些控制变量查看TrackBar位置是由用户还是您的Timer更新的话,请确保。其他老虎钳你最终会出现奇怪的口吃(第一次发生在我身上)。
至于单独使用LiveBindings实现这一切,我认为不可能。