Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,851 questions

51,772 answers

573 users

How to pass a runnable procedure (a function) as a parameter and run it in Pascal

2 Answers

0 votes
program PassFunctionAsParameter;

type
  // Define a procedural type for a function that takes an integer and returns an integer
  TIntegerFunction = function(x: Integer): Integer;

procedure RunProcedureWithFunction(Func: TIntegerFunction; Value: Integer);
begin
  // Call the passed function with the provided value
  WriteLn('Result: ', Func(Value));
end;

// Example function to be passed
function Square(x: Integer): Integer;
begin
  Square := x * x;
end;

// Another example function
function Double(x: Integer): Integer;
begin
  Double := x * 2;
end;

begin
  // Pass the Square function to the procedure
  RunProcedureWithFunction(@Square, 4);

  // Pass the Double function to the procedure
  RunProcedureWithFunction(@Double, 7);
end.


  
(*
run:

Result: 16
Result: 14
  
*)  



 



answered May 22, 2025 by avibootz
0 votes
program ProcedureAsParameter;

uses SysUtils;

type
  TProcedure = procedure;

procedure Control(F: TProcedure);
begin
  if Assigned(F) then
    F(); // Explicitly call the procedure
end;

// Sample procedure to execute
procedure say;
begin
  WriteLn('abcd');
end;

begin
  Control(@say); // Passing procedure reference
end.


  
(*
run:

abcd
  
*)  



 



answered May 22, 2025 by avibootz
...