TForm1.Button1Click(Sender: Tobject);
begin
...
end;
Указатель на метод класса
Есть такой метод класса:
Код:
Необходимо вызывать данный метод по указателю:
Код:
...
type
TMyClass
MyMethod(ButtonClick: TNotifyEvent);
end;
type
TMyClass
MyMethod(ButtonClick: TNotifyEvent);
end;
Вызов:
Код:
MyMethod.(Button1Click(nil));
Но этот код происходит с ошибкой, компилятор говорит, что функции с таким определением параметров нет. Что же тут не так?
Код:
type
TMyClass = class
...
MyMethod: TNotifyEvent;
TMyClass = class
...
MyMethod: TNotifyEvent;
Код:
MyMethod:=Button1Click;
if Assigned(MyMethod) then MyMethod(nil);
if Assigned(MyMethod) then MyMethod(nil);
Цитата: makbeth
Во первых, указатель объявляется:
Код:
type
TMyClass = class
...
MyMethod: TNotifyEvent;
TMyClass = class
...
MyMethod: TNotifyEvent;
Дело в том, что я описал совсем другую ситуацию. Необходимо в качестве параметра функции (метода класса TMyClass) передавать указатель на другой метод другого класса. И внутри моей функции будет вызываться метод другого класса.
Цитата: makbeth
Во вторых, вызов осуществляется как у обычного метода:
Код:
MyMethod:=Button1Click;
if Assigned(MyMethod) then MyMethod(nil);
if Assigned(MyMethod) then MyMethod(nil);
Да, это был мой плод воспалённого мозга, указатель на метод передавать необходимо так:
Код:
MyMethod(Button1.OnClick);
После этого всё заработало. Большое Вам спасибо за ответ.