Delphi32.com - Home!
| Home/News | Downloads | Forums | D32 Magazine | Resources | Info and Facts |  
 
 Passing a function to a procedure or vice versa.


Can I pass a function or procedure to another function or procedure?   

    Yes. You must declare a procedure or function type to use as the parameter type, then you can pass the address of the procedure that you wish to pass. You must be careful to pass functions or procedures that are compatible with the function or procedure expected, as little error checking will be provided by the compiler. Example:

    type
      AFunctionType = function(IntIn : integer) : integer;
    function AddProc(IntIn : integer) : integer;
    begin
      Result := IntIn +  ;
    end;
    function SubProc(IntIn : integer) : integer;
    begin
      Result := IntIn - 2;
    end;
    procedure PassAFunction(var IntIn : integer;
                           fn : AFunctionType);
    begin
      IntIn := fn(IntIn);
    end;
    procedure TForm .Button Click(Sender: TObject);
    var
      i : integer;
    begin
      i :=  0;
      PassAFunction(i, @AddProc);
      ShowMessage(IntToStr(i));
      PassAFunction(i, @SubProc);
      ShowMessage(IntToStr(i));
    end;
    

     



  << Previous Faq     Complete List     Next Faq >>  



 
 Hits/month  2,500,000+ 
 Downloads
 (Since May 2000)
 7,393,709 
 Total Files  6,023 
 Forum msgs  7,670 
 Articles/FAQs  70+/900+ 
Kylix
Tips n Tricks
FAQs
Knowledge Base
Bug Listings
Articles
Books
Newsgroups
Links
Submissions
Testimonials
Advertising
Contact Us
About Us
Search Amazon:
Top Selling Software at Amazon

| Home/News | Downloads | Forums | Resources | Info and Facts | Testimonials |
  Site Search:
 


Comments/Problems: Webmaster@delphi32.com
Copyright © 1998-2006, Delphi32.com. All rights reserved.
Terms of Use