faqts : Computers : Programming : Languages : Delphi

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

0 of 1 people (0%) answered Yes
Recently 0 of 1 people (0%) answered Yes

Entry

Delphi: Procedure: Function: Parameter: Pass: How to pass a procedure as a parameter: N parameters?

Feb 22nd, 2004 16:28
Knud van Eeden,


----------------------------------------------------------------------
--- Knud van Eeden --- 22 February 2004 - 03:16 am -------------------

Delphi: Procedure: Function: Parameter: Pass: How to pass a procedure 
as a parameter: N parameters?

---

Steps: Overview:

 1. Create a new application

 2. Put e.g. a button on the form

So more general this becomes similar to the following:

--- cut here ---------------------------------------------------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, 
Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    // do not declare the functions or procedures that you call as 
parameters here
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure YourProcedure1( yourparametername1 : yourparametertype1; 
yourparametername2 : yourparametertype2; ...; yourparameternamelast : 
yourparametertypelast );
begin
 // do something
end;

procedure YourProcedure2( yourparametername1 : yourparametertype1; 
yourparametername2 : yourparametertype2; ...; yourparameternamelast : 
yourparametertypelast );
begin
 // do something
end;

...

procedure YourProcedurelast( yourparametername1 : yourparametertype1; 
yourparametername2 : yourparametertype2; ...; yourparameternamelast : 
yourparametertypelast );
begin
 // do something
end;

procedure TForm1.Button1Click(Sender: TObject);
 type TMyProcedureAsParameter = Procedure( <put here the total amount 
of formal parameters> );
 var myprocedureasparameter : TMyProcedureAsParameter;
begin
 myprocedureasparameter := YourProcedure1;
 myprocedureasparameter( <put here the total amount parameters> );
 // e.g.
 // myprocedureasparameter( 'some value11', 'some value12', 25, 
33, ... );
 //
 myprocedureasparameter := YourProcedure2;
 myprocedureasparameter( <put here the total amount parameters> );
 // e.g.
 // myprocedureasparameter( 'some value21', 'some 
value22', 'somevalue33', ... );
 //
 ...
 myprocedureasparameter := YourProcedurelast;
 myprocedureasparameter( <put here the total amount parameters> );
 // e.g.
 // myprocedureasparameter( 'some valuelast1', 'some 
valuelast2', 'somevaluelast3', ... );
 //
end;

end.

---
---

Internet: see also:

---

Delphi: Procedure: Function: Dynamic: Can you give overview passing 
function/procedure as parameter?
http://www.faqts.com/knowledge_base/view.phtml/aid/28931/fid/175

----------------------------------------------------------------------