Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Метода класса в качестве оконной процедуры формы


Автор: GydruS 12.1.2012, 17:23
Добрый день, профи!
Как-то можно передать в SetWindowLong в качестве новой оконной процедуры метод класса?
Или как можно передать адрес экземлпяра класса в самописную оконную процедуру (которая не является методом класса)?

При попытке сделать так
Код

SetWindowLong(FOwnerForm.Handle, GWL_WNDPROC, Longint(@ClassWndProc));

компилятор ругается, что E2036: Variable requered
Понимаю, что физически адрес обычной функции и адрес метода экземпляра класса отличаются... Но какое-то решение должно же быть?

П.С. Мне это нужно, чтобы написать компонент, который будет модифицировать саму форму, если он сам размещен на форме...

Спасибо за ответы!!!

Автор: kami 12.1.2012, 21:55
http://kladovka.net.ru/index.cgi?pid=board&rid=49. Не раз выручала, правда - на D7. На более новых не пробовал.

Автор: GydruS 13.1.2012, 11:00
kami, спасибо за ответ и за код! посмотрел его )
но мне тут еще подсказали сво-во TControl.WindowProc - с его помощью я добился решения задачи просто и красиво (в несколько строчек)!
так же нашел еще пример (который тоже помог) в справке по дельфи: ms-help://embarcadero.rs_xe2/codeexamples/SubClassWndProc_(Delphi).html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)