Passing procedure pointer in a function

I would like to create a function that will traverse a table and
perform the specified procedure on each record.  Something like:

MyFunction(ATable: TTable, ProcedureName: Procedure)
begin
  ATable.First;
  while not ATable.EOF do
  begin
     {Perform the function indicated by ProcedureName}
    ATable.Next;
  end;

My question is how do I reference the ProcedureName?