Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать указатель на функцию? [D6, Win95/98, Win2k]


Dmk ©   (2002-07-02 05:15:00) 

Как узнать указатель на функцию, если она описана например в потомке класса TForm? Если делать так

cwpPointer := @TDrawForm.ClientWindowProc;

то при передаче управления работает все кроме этой функции.
Или это указатель на место где лежит реальное значение?


MBo   (2002-07-02 06:43:00) [1]

type OProc=procedure of object;
var M:TMethod;

begin

M.Code := @TSomeClass.SomeProc;
M.Data := Self;//или нужный экземпляр объекта
OProc(M);


T'Mon   (2002-07-02 05:45:00) [2]

Procedure of object- это восьмибайтовый указатель.
Так что делай примерно так:
type
TClientWindowProc = procedure(...) of object;

var
cwpPointer: TClientWindowProc;

...
cwpPointer := DrawForm.ClientWindowProc
...


Учти в присвоении нужен реальныйобъект.


Dmk   (2002-07-02 05:20:00) [3]

А если сделать эту функцию не в классе то все нормально. ClientWindowProc работает, но ей не доступны переменные класса. :(


Dmk   (2002-07-02 05:18:00) [4]

Sry. Работает не все. Класс TDrawForm вообще не работает. :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо