Карта сайтаСсылкиКонтакты

Как использовать функцию или процедуру как параметр другой функции

PDF Печать
Статьи

Delphi позволяет передавать функции и процедуры в другие функции или процедуры в качестве параметра. Для этого нужно выполнить следующее:

  • Объявить функцию или процедуру, которая будет использована в качестве параметра. В приведенном ниже примере - это TFunctionParameter.
  • Определить функцию, которая будет принимать другую функцию в качестве параметра. В приведенном примере - это DynamicFunction.

type
  TFunctionParameter = function(const value : integer) : string;
 
{ ... }
 
function One(const value: integer): string;
function Two(const value: integer): string;
function DynamicFunction(f: TFunctionParameter): string;

implementation

{$R *.dfm}

function One(const value : integer) : string;
begin
  result := IntToStr(value div 2) ;
end;

function Two(const value : integer) : string;
begin
  result := IntToStr(2 * value) ;
end;

function DynamicFunction(f : TFunctionParameter) : string;
begin
  result := f(1000) ;
end;

Использование:


procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
begin
  s:= DynamicFunction(One);
  // Возвращает 500
  ShowMessage(s);

  s:= DynamicFunction(Two);
  // Возвращает 2000
  ShowMessage(s);
end;

 

Добавить комментарий


Защитный код
Обновить