我如何知道何时停止滚动TScrollBar?

Mas*_*ler 3 delphi events scrollbar

我已经使用了一些带滚动条的程序,当你还在拖动"拇指"时更新链接的内容,而其他程序在你释放鼠标之前不会.这意味着此处涉及不同类型的Windows消息.但是我从TScrollBar中找到的只是一个OnScroll事件,在你拖动的时候不断激活.它也没有OnMouseDown或OnMouseUp事件.有没有办法为TScrollBar设置"OnEndDragging"通知?

mgh*_*hie 5

尝试使用此代码(使用Delphi 2009测试),当您跟踪拇指时,它将使用随机颜色填充表单客户端区域,并在拇指释放时将其填充为黄色:

procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
begin
  Randomize;
  if ScrollCode = scTrack then
    Color := RGB(Random(256), Random(256), Random(256));
  if ScrollCode = scEndScroll then
    Color := clYellow;
end;
Run Code Online (Sandbox Code Playgroud)

TScrollCode值映射到WPARAM,你会发现记录的数值WM_HSCROLLWM_VSCROLL.