我有一个TTrackBar和一个TMediaPlayer,我正在寻找一种使用LiveBindigs功能根据TMediaPlayer位置更改TTrackBar位置的方法。
问题是,TMediaPlayer上没有事件可以监视TMediaPlayer.Position属性的更改,因此TMediaPlayer.Position不能同步。
是否可以在不触发事件的情况下监视组件属性的更改?
发布于 2016-04-01 20:54:03
不可能在没有适当事件的情况下监视某些属性的更改。
您也不希望将任何事件绑定到MediaPlayer.Position属性。为什么?
例如,当您正在播放视频时,每个帧的位置都会被更改,这意味着当使用30个FPS播放视频时,这样的事件将每秒触发30次。因此,根据该事件中的代码,它可以快速地将您的应用程序抓取。
所以我能给你的最好的建议是让你在你的表单上放置一个定时器,然后在一定的时间间隔内检查媒体播放器的位置来更新你的TrackBar。我相信一秒钟的间隔就足够了,但是如果你愿意的话,你可以缩短它。
只需确保如果您也使用TrackBar来寻找使用某些控制变量的能力,以查看TrackBar位置是由用户更新还是由您的计时器更新。其他的老虎钳你最终会结结巴巴的(第一次发生在我身上)。
至于仅用LiveBindings实现这一切,我认为这是不可能的。
https://stackoverflow.com/questions/36341600
复制相似问题