Bloque destructor BEGIN_DESTROY ... END_DESTROY
BEGIN_DESTROY
// Instrucciones END_DESTROY
Estas sentencias nos permiten acceder destructor del proceso mediante la definición de este bloque, así podremos ejecutar las sentencias que necesite el proceso a la hora de ser finalizado.
Los bloques BEGIN_DESTROY ... END_DESTROY se ejecutarán justo antes de ser eliminado el proceso.
Para poder utilizar BEGIN_DESTROY ... END_DESTROY dentro de un proceso o programa principal solamente hay que incluir estas sentencias detrás de END_INIT si es un proceso PROCESS_INIT o detrás de PROCESS si no lo es, y si es un proceso principal detrás de MAIN_PROGRAM_CDIV.
PROCESS_INIT( test )() BEGIN_INIT write(0,0,10,0, "Constructor"); END_INIT BEGIN_DESTROY write(0,0,18,0, "Destructor"); END_DESTROY BEGIN LOOP FRAME; END MAIN_PROGRAM_CDIV BEGIN_PROGRAM set_gfx(GFX_AUTODETECT_WINDOWED); set_mode(m320x200); new test(); write(0,0,0,0, "Pulse espacio para eliminar el proceso"); // Bucle de espera LOOP{ // Eliminamos el proceso if( key(_space) ) signal("test", s_kill); FRAME; } END_PROGRAM
En este ejemplo vemos como funciona el constructor y el destructor de un proceso. Se crea un proceso nos muestra el mensaje: "Constructor" y si se pulsa la barra espaciadora se destruye mostrando el mensaje: "Destructor".
Ver: Sintaxis