¡Hola!
Me gustaría añadir que ese tipo de dato se conoce como
procedimental (en inglés
procedural).
Es recomendable tomar en cuenta el ejemplo dado por
Marcelo, Guillermo. Aunque en este caso, el nombre original del tipo de dato indica que se trata de una función de
retrollamada (
callback). Este tipo de funciones generalmente no son llamadas explícitamente desde nuestro código, sino que se las proporcionamos a otra función para que ésta se encargue de llamarlas.
Las funciones de retrollamada son similares a los eventos, en el sentido de que proporcionamos una rutina de código para que un proceso ya escrito, al ser ejecutado, llame a nuestra rutina cada vez que suceda algo en particular. Es usual encontrarlas en muchas APIs que usan estas funciones de retrollamada para "avisarnos" o "actualizarnos" información, algunas veces en procesos iterativos.
Por la sintaxis nativa, me parece bien definir a tu función de retrollamada como
procedimiento. Sólo habría que averiguar qué
convención de llamada utiliza, indicándolo con la palabra reservada correspondiente:
Register,
Pascal,
CDecl,
StdCall,
SafeCall (ver tema "
Calling conventions" en la ayuda de Delphi).
Por último comento que no es necesario usar la palabra
Pointer para indicar que nuestra variable o tipo de dato es procedimental. En Pascal es implícito que un valor procedimental es la dirección de memoria (puntero) de la primera instrucción de código máquina de una rutina —es a esa dirección a donde "salta" la CPU para ejecutarla—.
Mi aportación.
Al González.
P.D. También te sugiero, Guillermo, llamarle a estas APIs o DLLs
bibliotecas en lugar de "
librerías". Es más correcto.