• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы 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
 
Код:
...
type
TObjectProc = procedure(sender: TObject) of object;
...

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

Для вызова просто пишешь внутри test
Код:
proc(self);
ну или что там хочешь передать вместо self
 
А для чего так делать? метод обработки нажатия на кнопке является Published, т.е. он виден для других методов данного класса.
 
Ну иногда передача функции полезна .. например часто используется в плагинной архитектуре...
 
Barmutik - Сенкс
DIR3ct0r - Лично мне ето нужно для написания универсального обработчика событий динамически создаваемого меню
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab