Perdón

.
Releyendo el código me he dado cuenta de que deje un gazapo al eliminar partes del código inútil tras realizar pruebas. Como no lo puedo editar, muestro aquí el gazapo y la corrección:
Donde dice:
Código Delphi
[-]if not S then inherited WndProc(Message);
Debe decir:
Código Delphi
[-]inherited WndProc(Message);
S es una variable que elimine...
Saludos.