Ich habe mir Deinen Code und das
MSDN zu WM_MOUSEWHEEL gerade noch einmal genauer angesehen. Da Du das höherwertige Word ja in eine SmallInt castest, sollte diese auch negative Werte annehmen können. Geht es denn um ein 32- oder ein 64Bit-Programm? Evtl. stimmen die Größen einfach nicht, aber da ich kein XE2 besitze, kann ich auch nur mutmaßen.
[edit] Kein roter Kasten. Aber schön, dass wir mal drüber gesprochen haben

[/edit]