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