我使用了一些带有滚动条的程序,这些程序在您仍然拖动“拇指”时会更新链接的内容,而另一些程序直到您释放鼠标后才使用。这意味着此处涉及不同类型的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
值映射到为WPARAM
和WM_HSCROLL
记录的WM_VSCROLL
值。