Hola Casimiro.
No pude encontrar una referencia exacta a los usos de SetWindowLong con conflictos, pero encontré varias con casos similares.
Aparentemente algunos usos sólo corren compiladas con versiones Delphi 2006 y anteriores.
Pareciera que el problema se produce por que a partir de la versión 2007, algunos controles son manejados por la VCL.
De las referencias de donde infiero esto destaco estas dos:
Cita:
To remove the flicker when calling the SetWindowLong, you first hide the window then show it again using ShowWindow with parameters SW_HIDE and SW_SHOW.
Not working with Delphi 2007 
For applications created with Delphi 2007 the above code will not work - taskbar button will not be hidden.
|
(
about )
Cita:
|
With Delphi 2007, a new property of the Application object, the MainFormOnTaskbar property controls how Windows taskbar buttons are handled by VCL
|
(
about )
Así que las funciones que puse arriba (exeptuando OnlyNumbers) aparentemente sólo funcionarían hasta la versión de Delphi 2006 (quedaría probarlas con esa versión para confirmarlo).
Un saludo.