Текущий архив: 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.47 MB
Время: 0.046 c