Передаче в параметрах процедуры другой процедуры

  • Автор темы VahaC
  • Дата начала
V

VahaC

Возможно из темы ничего не понятно тогда извините иначе сформулировать не смог.
Ситуация следующая :
есть две процедуры вида
procedure test(m:string; i: Integer);
procedure Button1Click(Sender: TObject);
....

Procedure TForm1.test(m:string; i: Integer);
begin
....
end;

Procedure TForm1.Button1Click(Sender: TObject);
begin
DBMemo1.Text:=DBMemo1.Text+((Sender as TMenuItem).Caption);
end;

возможно ли передать процедуру Button1Click(Sender: TObject); в качестве
параметра процедуре test(m:string; i: Integer); с сохранением её работо способности.
Если да то плиз напишите как. :D
 
K

Kuljok

Код:
...
type
TObjectProc = procedure(sender: TObject) of object;
...

procedure test(proc: TObjectProc; m: integer; s: string);

Для вызова просто пишешь внутри test
Код:
proc(self);
ну или что там хочешь передать вместо self
 
D

DIR3ct0r

А для чего так делать? метод обработки нажатия на кнопке является Published, т.е. он виден для других методов данного класса.
 
B

Barmutik

Ну иногда передача функции полезна .. например часто используется в плагинной архитектуре...
 
V

VahaC

Barmutik - Сенкс
DIR3ct0r - Лично мне ето нужно для написания универсального обработчика событий динамически создаваемого меню
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!