Вниз
Скачать: CL | DM;

Callback и классы   Найти похожие ветки 

 
Vovan #2   (2007-01-26 00:15) [0]

Довольно известная задача - установить в качестве callback метод класса. Что скажете по этому поводу? Решения видел, но что-то в них не то. Если конкретней, то есть определённого вида callback функция, которую нужно передать в API-шную функцию. О содержимом callback должен позаботиться класс. Как поступить? Может ну его (есть возможность обойтись сообщениями)?


 
DrPass ©   (2007-01-26 01:41) [1]


> О содержимом callback должен позаботиться класс. Как поступить?

Действительно, решения больше на хаки похожи, чем на нормальный код. Если ты посмотришь исходники VCL, то увидишь - методы класса никогда не передаются в качестве callback"ов. Только регулярные процедуры и функции. А уже им в качестве опциональных параметров экземпляр класса (который устанавливает коллбек) подсовывает указатель на самого себя


 
Джо ©   (2007-01-26 01:44) [2]

> [1] DrPass ©   (26.01.07 01:41)
>
> > О содержимом callback должен позаботиться класс. Как поступить?
>
>
> Действительно, решения больше на хаки похожи, чем на нормальный
> код. Если ты посмотришь исходники VCL, то увидишь - методы
> класса никогда не передаются в качестве callback"ов.

Неправда, есть такие :) Но, конечно, хаки. В чем каждый может убедиться взглянув хоть на MakeObjectInstance :)


 
Anatoly Podgoretsky ©   (2007-01-26 21:55) [3]

> Vovan #2  (26.01.2007 00:15:00)  [0]

Эта задача элементарно решается, в качестве каллбак используется регулярная процедура, а он уже работает с классом.


 
Vovan #2   (2007-01-27 01:29) [4]

>Эта задача элементарно решается, в качестве каллбак используется регулярная процедура, а он уже работает с классом.

...Если объявление callback допускает одним из параметров ссылку на объект.


 
DrPass ©   (2007-01-27 01:56) [5]


> ...Если объявление callback допускает одним из параметров
> ссылку на объект

Как правило, во всех системных коллбеках предусмотрен "пользовательский" 32-битный параметр


 
GrayFace ©   (2007-01-27 10:48) [6]

У меня в RSPak есть RSMakeObjectInstance для таких вещей.
http://delphimaster.net/view/15-1169883926/


 
GrayFace ©   (2007-01-27 10:49) [7]

Тоже хак, но без излишних извращений, типа тех, что в MakeObjectInstance.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.042 c
15-1169481041
Vlad Oshin
2007-01-22 18:50
2007.02.11
О базах, синтаксисе, делфи.. не знаю о чем... как так может быть?


3-1163606293
AlexWlad
2006-11-15 18:58
2007.02.11
Невозврат значения из Stored Procedure


10-1110131857
Nicolas1989
2005-03-06 20:57
2007.02.11
Сохранение документа в Excel


15-1169397763
vasIzmax
2007-01-21 19:42
2007.02.11
Телефон vs Комп


1-1166135792
conless
2006-12-15 01:36
2007.02.11
ScrollBox, помогите разобраться!




   Наверх