Was dabei aber erwähnt werden sollte: dieser Code scrollt das Control unter der Maus. Ist auch in der Originalanfrage so, verdient aber
imho der speziellen Erwähnung, weil es zu so Effekten führt dass etwa auf einmal nichts mehr scrollt, wenn die Maus über einem TButton innerhalb der Scrollbox ist.
Das sollte aber eigentlich nicht so sein. Die while-Schleife sollte eigentlich die erste übergeordnete ScrollBox finden zu der das Control unter der Maus gehört. Ist das bei dir nicht der Fall?