关于TRACKBAR跟踪和触发问题(100分)

T

tonycxy

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用TMediaPlayer做一个类似媒体播放器的程序,但是在使用TTrackBar时遇到问题。
我想让TTrackBar在媒体播放时自动变化,同时又想让用户可以拖动TTrackBar时能够
跳到相应的帧,但是发现不好控制,请问有没有现成的程序例子?
单做跟踪很简单,只要用个TIMER就行了,但是这个拖放功能是无论如何也加不上去。
如过在CHANGE事件里触发MEDIAPLAYER.position:=trackbar.position的话,就会与TIMER事件
里的跟踪代码:trackbar1.postition:=mediaplayer.position 形成一个死套,因为在跟踪时
本身已经在自动的触发ONCHANGE事件,系统无法识别这个CHANGE事件是自动的还是外部手动触发的。

(小弟就那么点分数了,全部相送)
 
问题已解决,毋须回答
 
说说你怎么解决的吧。
 
怎么解决的?
 
估计是 timer 跟踪不合适。
position应该有类似 change的事件。
 
楼上的兄弟说具体点好不好?
用TIMER不合适的话,你说用什么控件才能起到定时跟踪呢?第三方的还是API呢?
position里有CHANGE事件?我不清楚,给出具体方案,当然要求是用你所说的POSITON里的
CHANGE去实现,分数全是你的。
说老实话,我已经通过点击事件机制实现了。
 
我做过这个东西,我是这样解决的,从Ttrackbar继承一个部件,公布它的OnMouseDown,OnMouseUp事件,
就可以用了,效果很好。
㈠、用Timer来解决跟踪进度
㈡、
声明一个变量;
var XDown:integer;
XDown:=0;
//初始化

在 OnMouseDown 事件中;
if Button= 是左键(不好意思,我忘了) then
Xdown=1 else
Xdown=0;

在 OnMouseUp 事件中;
if Button是左键 then

begin

mplayer1.pause;
mplayer1.position:=trackbar.position.
mplayer1.play
end
else
XDown=0;
 
顶部