Initialization y finalization

Una Unidad (Unit) también puede contener un apartado de initialization (inicialización) y un apartado de finalization (finalización).

Estos dos bloques de código se ejecutan automáticamente al iniciar y al cerrar el programa respectivamente.

initialization: Se ejecuta al lanzar el programa y cargar la unidad en memoria, antes que el código principal. Varias unidades ejecutan sus apartados de inicialización en secuencia según el orden de referencia.

finalization: Se ejecuta justo antes del cierre normal del programa y la eliminación del proceso; su orden de ejecución es el inverso al de la inicialización.

Funciones

Initialization: Registrar clases, abrir archivos globales / conexiones de base de datos, inicializar variables globales, registrar componentes;

Finalization: Liberar memoria, cerrar manejadores, guardar configuraciones, anular el registro de recursos para evitar fugas de memoria.

Vamos a modificar el archivo PAS de unidad de la lección anterior: MyUnit.pas

unit MyUnit;

{$ifdef FPC}
{$mode objfpc}{$H+}{$J-}
{$endif}

interface

procedure MyProcedure(const A: Integer);
function MyFunction(const S: string): string;

implementation

procedure MyProcedure(const A: Integer);
begin
  WriteLn('A + 10 is: ', A + 10);
end;

function MyFunction(const S: string): string;
begin
  Result := S + 'strings are automatically managed';
end;

// Apartado de inicialización: se ejecuta automáticamente cuando el programa carga esta unidad
initialization
  WriteLn('Hello world!');

// Apartado de finalización: se ejecuta automáticamente antes del cierre normal del programa
finalization
  WriteLn('Goodbye world!');

end.Lenguaje del código: JavaScript (javascript)

Solo hemos añadido estos dos apartados al final del archivo

Resultado de ejecución

El último mensaje «Goodbye world» solo se ejecuta tras pulsar la tecla Intro (cuando el programa va a finalizar).

Deja una respuesta

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