diff --git a/lcl/interfaces/win32/win32wscomctrls.pp b/lcl/interfaces/win32/win32wscomctrls.pp index 75f7e4ad7b..b62db2ece0 100644 --- a/lcl/interfaces/win32/win32wscomctrls.pp +++ b/lcl/interfaces/win32/win32wscomctrls.pp @@ -1015,8 +1015,16 @@ begin Windows.SendMessage(wHandle, TBM_CLEARSEL, Windows.WPARAM(True), 0) else begin - Windows.SendMessage(wHandle, TBM_SETSELSTART, Windows.WParam(False), SelStart); - Windows.SendMessage(wHandle, TBM_SETSELEND, Windows.WParam(True), SelEnd) + if (GetWindowLong(ATrackBar.Handle, GWL_STYLE) and TBS_REVERSED) <> 0 then + begin + Windows.SendMessage(wHandle, TBM_SETSELSTART, Windows.WParam(False), ATrackBar.Max-SelEnd); //SelStart/SelEnd are not relative to Min/Max + Windows.SendMessage(wHandle, TBM_SETSELEND, Windows.WParam(True), ATrackBar.Max-SelStart) + end + else + begin + Windows.SendMessage(wHandle, TBM_SETSELSTART, Windows.WParam(False), SelStart); + Windows.SendMessage(wHandle, TBM_SETSELEND, Windows.WParam(True), SelEnd) + end; end; end; end;