![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать указатель на функцию? [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 вообще не работает. :(