Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: 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 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.059 c
2-1169645465
Графика
2007-01-24 16:31
2007.02.11
Метод канвы TextOut


15-1169201986
altex
2007-01-19 13:19
2007.02.11
Защита Приложения.


2-1169622990
TCrash
2007-01-24 10:16
2007.02.11
SizeOf - выполнение в Run-time или в Precompiling-time


9-1143051978
DR0N
2006-03-22 21:26
2007.02.11
Сумосбродная игра от DRON


3-1163790175
F33l
2006-11-17 22:02
2007.02.11
всплывающее окно с картинкой в cxGrid