Если вы хотите создать подкласс оконного дескриптора (используя SetWindowLong) для обработки оконных сообщений в функции TWndMethod, вы не должны приводить значение, возвращаемое GetWindowLong (FHandle, GWL_WNDPROC) к TWndMethod. Вам следует использовать функцию MakeObjectInstance, чтобы получить значение, которое можно вместо этого передать в SetWindowLong. Прочитайте ответ Sertac Akuyz для общей идеи.
Обратите внимание, что необходимость подкласса дескриптора окна очень редко встречается в приложениях Delphi. Delphi предоставляет несколько других способов вмешательства в обработку оконных сообщений, они более просты и безопасны.