Fuente: https://medium.com/analytics-vidhya/understanding-callbacks-a22e8957a73b
Callbacks

En programación una CALLBACK (o retrollamada o devolución en español) es un función ejecutable que se usa como argumento para otra función, según la Wikipedia.

En unas palabras más sencillas, es tener una función que en lugar de devolver un valor determinado,
lo que hace es llamar a un procedimiento. Este método de programación permite crear
capas de abstracción. Por ejemplo si los datos retornados por la función hay que formatearlos
o prepararlos de una manera u otra antes de mostrarlos, es más cómodo hacer esto
en un procedimiento específico.

Vamos a ver como se hace esto en Free Pascal. Empecemos creando un proyecto simple.

Lo primero es declarar como sera el procedimiento que funcionará como CALLBACK. Osea el procedimiento que será ejecutado cada vez que se produzca una devolución.

El tipo de procedimiento será TMyCallback, y recibirá un número y una variable booleana. La variable booleana, al ser pasada como VAR nos permite cambiar su valor y que este permanezca con ese valor una salga la ejecución de de la función, y así comunicar al procedimiento que llamó al CALLBACK que ya no queremos más datos.

Lo siguiente es crear el procedimiento que hará uso de las llamadas CALLBACK.

En este procedimiento contaremos hasta 10, y si la variable finalizar es TRUE, paramos de contar. Un detalle a tener en cuenta, es que es posible que la rutina CALLBACK no esté creada lo que haría que el programa diera un error en tiempo de ejecución y se detenga. Para evitar esta situación, comprobamos que esté asignada, con la línea:

Ya solo queda hacer uso del callback. Para ello debemos definir la función que recibirá las llamadas CALLBACK.

Puede tener cualquier nombre, pero debe tener los mismo parámetros que la definición.
En ella ponemos un código sencillo para este ejemplo, en el cual mostramos el número recibido y si este es 5, cambiamos el valor de la variable fin para que el procedimiento no continue enviando números.

En la parte principal del programa, escribimos el código para poner todo esto en marcha.

Llamamos al procedimiento Contar, pasando como parámetro el nombre del procedimiento que usará como CALLBACK.
Para hacer compatible este código, con Delphi, usamos la directiva de compilación {$IFDEF FPC}, ya que en Delphi el parámetro CALLBACK no se indica con una @.

Aquí te dejo el código completo.

Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio esta protegido por reCAPTCHA y laPolítica de privacidady losTérminos del servicio de Googlese aplican.

El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.