首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi TrackBar On Stop

Delphi TrackBar On Stop
EN

Stack Overflow用户
提问于 2014-06-06 10:20:41
回答 1查看 1.2K关注 0票数 0

我正在制作一个基本的音乐播放器,并使用TTrackBar作为歌曲的进度。还有,我想让它,以便您可以拖动酒吧和快进的歌曲。

目前,我有一个包含以下代码行的OnChange事件:

代码语言:javascript
复制
MediaPlayer1.position := TrackBar1.value... (with proper casting)

但发生的情况是,它跳过了这首歌,因为我拖着它,在播放这首歌的过程中,它会在某个随机的点上发出一种颠簸的声音。

我真正想要的是当用户停止拖动时,歌曲应该改变。这是什么活动?onStopDrop甚至不能做到这一点..

EN

回答 1

Stack Overflow用户

发布于 2014-06-06 17:34:58

滚动通知消息通过WM_HSCROLLWM_VSCROLL到达,具体取决于轨迹栏的方向。这些表面在VCL控件中表现为CN_HSCROLLCN_VSCROLL。您需要处理这些消息并忽略滚动代码为TB_THUMBTRACK的消息,以防止控件在用户拖动滑块时触发OnChange事件。

例如,下面是一个插入器控件,它可以执行您需要的操作:

代码语言:javascript
复制
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;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24073183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档