void delete_draw( int id_draw )


Descripción:

Borra una primitiva gráfica que se ha pintado con la función draw(), para ello se requiere como parámetro el identificador de la primitiva, que es el código numérico que se retornó al pintarla.

Si se especifica como parámetro all_drawing se borrarán todas las primitivas gráficas representadas en pantalla, es decir, que el identificador será necesario sólo en el caso de querer eliminar una primitiva concreta.


MAIN_PROGRAM_CDIV

PRIVATE
   int
    id_draw,
    tipo,
    color,
    opacidad,
    x0,y0,
    x1,y1;

BEGIN_PROGRAM 

    //Definimos el modo grafico
    set_gfx(GFX_AUTODETECT_WINDOWED);

    //Definimos la resolución
    set_mode(m320x200);

    write(0, 160, 8, 1, "[ENTER] Mostrar / [ESPACIO] borrarla");
    draw(2,makecol(255,0,0),15,0,0,0,319,199);

    LOOP{
        tipo=rand(1,5);
        color=rand(0,255);
        opacidad=rand(0,15);
        x0=rand(0,319);
        y0=rand(0,199);
        x1=rand(0,319);
        y1=rand(0,199);

        id_draw=draw(tipo,color,opacidad,0,x0,y0,x1,y1);

        while (NOT key(_space))
            FRAME;

        delete_draw(id_draw); // Borramos el texto

        while (NOT key(_enter))
            FRAME;
    }

END_PROGRAM

En el ejemplo anterior, se imprime una primitiva en pantalla, entonces se espera hasta que se pulse la barra espaciadora, momento en el que se borra la primitiva y se espera a la tecla ENTER antes de volver a repetir el bucle.

Se puede observar como sólo se borra la segunda primitiva, cuyo identificador se ha guardado en la variable id_draw (la primera es el rectángulo que abarca toda la pantalla y se pinta con la primera llamada a draw() del programa).

Para borrar todas las primitivas se debería haber llamado a la función como delete_draw(all_drawing);, lo que también habría eliminado al rectángulo.

Nota: Con la función move_draw() se pueden modificar las características de una primitiva gráfica presente en pantalla (posición, color, opacidad y tamaño).


Ver: draw() - move_draw()