1. Home
  2. Computing & Technology
  3. Delphi Programming

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

By , About.com Guide

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) :

  1. Declare the function (or procedure) that will be used as a parameter. In the example below, this is "TFunctionParameter".
  2. Define a function that will accept another function as a parameter. In the example below this is "DynamicFunction"
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;
Note:
  • Of course, you decide on the signature of the "TFunctionParameter": whether it is a procedure or a function, how many parameters does it take, etc.

  • If "TFunctionParameter" is a method (of an instance object) you need to add the words of object to the procedural type name, as in:

    TFunctionParameter = function(const value : integer) : string of object;

  • If you expect "nil" to be specified as the "f" parameter, you should test for this using the Assigned function.

  • Fixing the "Incompatible type: 'method pointer and regular procedure'"

Delphi tips navigator:
» How to Run your Application by Double-Clicking on a File (Register Extension)
« How to Convert RGB Color to HSB (HSV) Color

More Delphi Programming Quick Tips
Explore Delphi Programming
About.com Special Features

Holiday Central

What to eat, where to go, fun things to do and how to save money on the perfect gifts. More >

Family Tech Center

Stay connected and entertained with reviews on tips on the latest HDTVs, cellphones and more. More >

  1. Home
  2. Computing & Technology
  3. Delphi Programming
  4. Coding Delphi Applications
  5. Delphi Tips and Tricks
  6. Delphi 2006 Tips
  7. How to Use a Function or a Procedure as a Parameter in another Function in Delphi

©2009 About.com, a part of The New York Times Company.

All rights reserved.