define_region()

define_region(<número de región>, <x>, <y>,<ancho> ,<alto> )

Descripción:

Define una nueva región de visualización dentro de la pantalla (algo así como una ventana). Las regiones son zonas rectangulares de la pantalla dentro de las cuales se visualizarán unos determinados procesos, ventanas de scroll o de modo 7.

El número de región debe ser entre 1 y 31. Se pueden definir hasta 31 regiones diferentes de pantalla que después podrán asignarse a diferentes procesos (fijando su variable local region al nuevo número) como su ventana de visualización, o bien utilizarse como marco para una ventana de scroll o de modo 7 indicándolo en el parámetro correspondiente de las funciones start_scroll() o start_mode7().

La región número 0 no se debe redefinir, pues será siempre la pantalla completa, una ventana en las coordenadas (0, 0) y del ancho y alto de la pantalla. Ésta es la región en la que se visualizarán por defecto todos los procesos, ya que su variable local region siempre vale 0 por defecto.

Programa ejemplo:
PROGRAM ejemplo_define_region;

PRIVATE
    contador;

BEGIN
    load_fpg("help\help.fpg");
    put_screen(0, 1);

    define_region(1, 0, 0, 160, 200);   // Definimos la región 1
    define_region(2, 160, 0, 160, 200); // Definimos la región 2

    write(0, 0, 0, 0, "Región 1");
    write(0, 320, 0, 2, "Región 2");

    FROM contador=1 TO 20;
        proceso_móvil(rand(0, 319), rand(0, 159), rand(-8, 8), rand(-8, 8), rand(1, 2));
    END
END

PROCESS proceso_móvil(x, y, incremento_x, incremento_y, region);

BEGIN
    graph=100;
    LOOP
        IF (x<0 OR x>320) incremento_x=-incremento_x; END
        IF (y<0 OR y>200) incremento_y=-incremento_y; END
        x+=incremento_x;
        y+=incremento_y;
        FRAME;
    END
END


Primero se definen dos regiones como divisiones laterales de la pantalla. Luego, se crean con un bucle 20 procesos de tipo proceso_móvil en coordenadas y desplazamiento aleatorios, en una de las dos regiones.

Se puede observar en su ejecución cómo cada proceso se ve únicamente en una de las dos mitades de la pantalla (sólo en su región).


Ver: out_region() - start_scroll() - start_mode7() - Variable region