在 Delphi FMX中,TTrackBar
有两个事件用于跟踪更改-OnChange
和OnTracking
。这两个事件只有在Tracking
被启用(默认)时才执行相同的操作。禁用Tracking
将使OnChange
只在用户完成后才被触发。
我的问题是,使用 Delphi 11作为VCL应用程序时,Tracking
属性不存在,并且事件在每个更改/滴答声结束时触发(导致发送多个消息)。
我宁愿只结束变化/最后的值),根据这个老职位:
Delphi TTrackBar doesn't have on complete event
1条答案
按热度按时间ltskdhd11#
VCL中的
TTrackBar
在跟踪完成时没有事件。但是,底层的Win32 Trackbar control * 确实 * 发送这样的通知。它将
WM_HSCROLL
/WM_VSCROLL
消息(取决于它的方向)发送到其父窗口,其中LOWORD(wParam)
被设置为TB_ENDTRACK
。您可以将父窗口子类化以处理这些通知。它还可以向父窗口发送
TRBN_THUMBPOSCHANGING
通知,其中lParam
包含一个指向NMTRBTHUMBPOSCHANGING
结构体的指针,该结构体的nReason
字段设置为TB_ENDTRACK
。您可以将TTrackBar
本身子类化,以捕获CN_NOTIFY
消息来处理此通知。