我使用了一些带有滚动条的程序,这些程序在您仍然拖动“拇指”时会更新链接的内容,而另一些程序直到您释放鼠标后才使用。这意味着此处涉及不同类型的Windows消息。但是我从TScrollBar可以找到的只是一个OnScroll事件,该事件在拖动时会不断触发。它还没有OnMouseDown或OnMouseUp事件。有什么方法可以为TScrollBar设置“ OnEndDragging”通知吗?

最佳答案

尝试以下代码(已在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;


TScrollCode值映射到为WPARAMWM_HSCROLL记录的WM_VSCROLL值。

10-06 10:29