Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
6-1157965971
dwar
2006-09-11 13:12
2007.02.11
INDY 9 проблемма стоп сервера


15-1169492223
Chort
2007-01-22 21:57
2007.02.11
Учебник 3Ds Max 6


2-1169814625
novill
2007-01-26 15:30
2007.02.11
Есть способ удаления файлов с аттрибутом readonly?


6-1157832233
Lex Luthor
2006-09-10 00:03
2007.02.11
Загрузка контактов в TICQ Client e


15-1169191954
Priest
2007-01-19 10:32
2007.02.11
Выбор винта на ноут





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский