我想提出一个基本的音乐播放器和正在使用TTrackBar作为歌曲的进展情况。 还有我想使它这样你们可以拖动滑块和快进歌曲。
目前,我有以下行的OnChange事件:
MediaPlayer1.position := TrackBar1.value... (with proper casting)
但发生的事情是,它跳过一起,因为它起着沿途某些随机点的歌曲作为我拖累制作波涛汹涌的声音的歌曲。
我真正想要的是当用户停止拖动首歌应该改变。 什么情况下这是什么? 该onStopDrop甚至不会做的伎俩..
滚动通知邮件到达时,虽然WM_HSCROLL
或WM_VSCROLL
,这取决于你的轨迹栏的方向。 这些表面在VCL控制作为CN_HSCROLL
和CN_VSCROLL
。 您需要处理这些消息,并忽略消息,其滚动码TB_THUMBTRACK
以防止火控制OnChange
当用户拖动滑块事件。
例如,这里是已经做了你所需要的内插器控制:
type
TTrackBar = class(Vcl.ComCtrls.TTrackBar)
protected
procedure CNHScroll(var Message: TWMHScroll); message CN_HSCROLL;
procedure CNVScroll(var Message: TWMVScroll); message CN_VSCROLL;
end;
implementation
procedure TTrackBar.CNHScroll(var Message: TWMHScroll);
begin
if Message.ScrollCode = TB_THUMBTRACK then
Message.Result := 0
else
inherited;
end;
procedure TTrackBar.CNVScroll(var Message: TWMVScroll);
begin
if Message.ScrollCode = TB_THUMBTRACK then
Message.Result := 0
else
inherited;
end;