Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Указатель на метод класса

1.8K
14 февраля 2008 года
rSolanov
106 / / 04.05.2005
Здравствуйте!
Есть такой метод класса:
 
Код:
TForm1.Button1Click(Sender: Tobject);
begin
...
end;

Необходимо вызывать данный метод по указателю:
 
Код:
...
type
 TMyClass
  MyMethod(ButtonClick: TNotifyEvent);
 end;

Вызов:
 
Код:
MyMethod.(Button1Click(nil));

Но этот код происходит с ошибкой, компилятор говорит, что функции с таким определением параметров нет. Что же тут не так?
303
15 февраля 2008 года
makbeth
1.0K / / 25.11.2004
Во первых, указатель объявляется:
 
Код:
type
    TMyClass = class
        ...
        MyMethod: TNotifyEvent;
Во вторых, вызов осуществляется как у обычного метода:
 
Код:
MyMethod:=Button1Click;
    if Assigned(MyMethod) then MyMethod(nil);
1.8K
18 февраля 2008 года
rSolanov
106 / / 04.05.2005
Цитата: makbeth
Во первых, указатель объявляется:
 
Код:
type
    TMyClass = class
        ...
        MyMethod: TNotifyEvent;


Дело в том, что я описал совсем другую ситуацию. Необходимо в качестве параметра функции (метода класса TMyClass) передавать указатель на другой метод другого класса. И внутри моей функции будет вызываться метод другого класса.

Цитата: makbeth

Во вторых, вызов осуществляется как у обычного метода:
 
Код:
MyMethod:=Button1Click;
    if Assigned(MyMethod) then MyMethod(nil);


Да, это был мой плод воспалённого мозга, указатель на метод передавать необходимо так:

 
Код:
MyMethod(Button1.OnClick);

После этого всё заработало. Большое Вам спасибо за ответ.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог