Delphi 11 VCL TTrackBar没有Tracking属性,事件在每个刻度改变时触发

8i9zcol2  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(196)

在 Delphi FMX中,TTrackBar有两个事件用于跟踪更改-OnChangeOnTracking。这两个事件只有在Tracking被启用(默认)时才执行相同的操作。禁用Tracking将使OnChange只在用户完成后才被触发。
我的问题是,使用 Delphi 11作为VCL应用程序时,Tracking属性不存在,并且事件在每个更改/滴答声结束时触发(导致发送多个消息)。
我宁愿只结束变化/最后的值),根据这个老职位:
Delphi TTrackBar doesn't have on complete event

ltskdhd1

ltskdhd11#

VCL中的TTrackBar在跟踪完成时没有事件。但是,底层的Win32 Trackbar control * 确实 * 发送这样的通知。
它将WM_HSCROLL/WM_VSCROLL消息(取决于它的方向)发送到其父窗口,其中LOWORD(wParam)被设置为TB_ENDTRACK。您可以将父窗口子类化以处理这些通知。
它还可以向父窗口发送TRBN_THUMBPOSCHANGING通知,其中lParam包含一个指向NMTRBTHUMBPOSCHANGING结构体的指针,该结构体的nReason字段设置为TB_ENDTRACK。您可以将TTrackBar本身子类化,以捕获CN_NOTIFY消息来处理此通知。

相关问题