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

VahaC

Well-Known Member
10.01.2007
116
0
#1
Возможно из темы ничего не понятно тогда извините иначе сформулировать не смог.
Ситуация следующая :
есть две процедуры вида
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

Гость
#2
Код:
...
type
TObjectProc = procedure(sender: TObject) of object;
...

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

DIR3ct0r

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

Barmutik

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

VahaC

Well-Known Member
10.01.2007
116
0
#5
Barmutik - Сенкс
DIR3ct0r - Лично мне ето нужно для написания универсального обработчика событий динамически создаваемого меню