Главная страница
    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.48 MB
Время: 0.042 c
15-1168961336
isasa
2007-01-16 18:28
2007.02.11
Беспроводная сеть в офисе(обычные 100 Мбит/с).


2-1169811109
Extar
2007-01-26 14:31
2007.02.11
Перемещение TABом по SpeddButtons - Как?


15-1169034260
Зм1й
2007-01-17 14:44
2007.02.11
Длительность арифметических операций


1-1166097257
webpauk
2006-12-14 14:54
2007.02.11
добавление BitMap в ImageList


15-1168980373
Kostafey
2007-01-16 23:46
2007.02.11
Размышления о построении SQL-запроса.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский