powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / вызвать метод объекта в качестве CallBack-функции
8 сообщений из 8, страница 1 из 1
вызвать метод объекта в качестве CallBack-функции
    #39679700
TMethod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть виндовая функция, в которую нужно передать ссылку на CallBack-функцию.
Код: pascal
1.
2.
3.
4.
type
  TCallbackProc = procedure(OutputString: string);

function WinSomeExec(...; CallbackProc: TCallbackProc): Cardinal; 


и есть класс, внутри которого эта функция дёргается и метод которого необходимо передать в качестве CallBack-функции.
Код: pascal
1.
2.
3.
4.
5.
6.
type
  TSomeClass = class
  private
    procedure DoIt;
    procedure CallBack(S: string);
  end;


вопрос - КАК?
так не канает:
Код: pascal
1.
2.
3.
4.
procedure TSomeClass.DoIt;
begin
  WinSomeExec(...; TMethod(CallBack).Code); 
end;


Ы?
...
Рейтинг: 0 / 0
вызвать метод объекта в качестве CallBack-функции
    #39679702
DesWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TMethod,

Надо читать про методы классов и скрытые параметры.
...
Рейтинг: 0 / 0
вызвать метод объекта в качестве CallBack-функции
    #39679708
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMethodметод которого необходимо передать в качестве CallBack-функции.Если callback не принимает какой-нибудь UserData: Pointer то быть методом класса он не может. Если принимает, то можно сделать прокси-функцию.

В какую функцию вы отдаете каллбек?
...
Рейтинг: 0 / 0
вызвать метод объекта в качестве CallBack-функции
    #39679711
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько примеров - в начале статьи .
...
Рейтинг: 0 / 0
вызвать метод объекта в качестве CallBack-функции
    #39679718
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создать функцию. А внутри вызов у экземпляра нужного метода
...
Рейтинг: 0 / 0
вызвать метод объекта в качестве CallBack-функции
    #39679719
TMethod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GunSmokerНесколько примеров - в начале статьи .спасибо!
довольно заморочено, но реализуемо.
...
Рейтинг: 0 / 0
вызвать метод объекта в качестве CallBack-функции
    #39679731
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TMethodдовольно заморочено, но реализуемо.

Извиняюсь, вы, случайно, дальше по тексту там не полезли? В ассемблерные переходники? Вам это не нужно, поскольку у Windows функций с callback-ми есть user параметры.
...
Рейтинг: 0 / 0
вызвать метод объекта в качестве CallBack-функции
    #39679739
TMethod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GunSmokerTMethodдовольно заморочено, но реализуемо.
Извиняюсь, вы, случайно, дальше по тексту там не полезли? В ассемблерные переходники? Вам это не нужно, поскольку у Windows функций с callback-ми есть user параметры.нет.
дальше не полез
основная идея, как я понял - использование "прокси"-метода, который должен быть объявлен как class function и непременно static .
ну и передача ссылки на экземпляр через lpData.
не совсем понял для чего нужно было делать именно strict private type.
но это, имхо не существенно.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / вызвать метод объекта в качестве CallBack-функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]