Сохранение указателя на указанную функцию в Delphi - PullRequest
5 голосов
/ 14 марта 2012

Не уверен, правильно ли указано, но мне нужно сохранить в некоторой коллекции указатель на указанную функцию.Я делаю это почти так же, как объявление переменной

SomeFunctionName: string

Конечно, этот тип не может быть строкой, вопрос в том, что именно должно быть?

Ответы [ 2 ]

6 голосов
/ 14 марта 2012

Обычно вы используете переменную указателя функции.Например:

type
  TProcedure = procedure;

procedure MyProc1;
begin
end;

procedure MyProc2;
begin
end;

var
  Proc: TProcedure;

.....
Proc := MyProc1;
Proc();//calls MyProc1
Proc := MyProc2;
Proc();//calls MyProc2

Это самый простой пример, который можно себе представить.Вы можете указать процедурные типы, которые имеют список параметров, метод типов объектов и так далее.Подробнее читайте в теме Процедурные типы в руководстве по языку.

1 голос
/ 14 марта 2012

Вы на самом деле не храните процедуру / функцию, а сохраняете метод.

Так что вам следует использовать TMethod Вместо этого. TMethod имеет указатель объекта и указатель процедуры.

Подробнее вы можете увидеть в другом посте: Сохранение и восстановление обработчиков событий

edit: Похоже, что вопрос был отредактирован обратно к оригиналу после показа некоторого запроса события Storing TControl.onClick .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...