How to Use a Function or a Procedure as a Parameter in another Function

Submitted by:Pitter Alderson

Date added:25 May, 2011

Category:Delphi

In Delphi, procedural types (method pointers) allow you to treat procedures and functions as values that can be assigned to variables or passed to other procedures and functions.

Here's how to call a function (or procedure) as a parameter of another function (or procedure) :

Declare the function (or procedure) that will be used as a parameter. In the example below, this is "TFunctionParameter".
Define a function that will accept another function as a parameter. In the example below this is "DynamicFunction"

Tags: delphi procedure

Code Snippet:

type
TFunctionParameter = function(const value : integer) : string;

...

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

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

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

...

//Example usage:

var
s : string;
begin
s := DynamicFunction(One) ;
ShowMessage(s) ; //will display "2006"

s := DynamicFunction(Two) ;
ShowMessage(s) ; // will display "4012"
end;
 
 

Comments