Das Verhalten der Scrollbar ist ungünstig:
Wenn man in den Scrollbereich klickt wird der Positionszeiger beim MouseUp an die Klickposition gesetzt.
Besser wäre wenn die Scrollbar beim MouseDown "seitenweise" in Richtung und bis zur Klickposition springen würde (bzw. bis man loslässt).
So ist das ja auch in der
VCL.
Alternativ sollte die Scrollbar wenigstens schon beim MouseDown zur Klickposition springen.
Die böse Stelle habe ich gefunden, aber nachträgliche Korrekturen sind vermutlich aufwändig (zumal die Funktionalität in ein Subcontrol verlagert ist), weshalb ich das erst mal aufschiebe.
(Mit einem schnellen Update ist wohl nicht zu rechnen ;-( )
Delphi-Quellcode:
procedure TCustomTrack.MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single);
var
LValue: single;
begin
LValue := Value;
inherited MouseUp(Button, Shift, X, Y);
DoMouseUp(Button, Shift, X, Y, LValue); // <---
end;