write_in_map()

write_in_map(<fuente>, <texto>, <código de centrado>)

Retorna:

El código del gráfico creado conteniendo al texto.

Descripción:

Crea un nuevo mapa en memoria (sin cargarlo de un archivo del disco, al igual que la función new_map()) y escribe en el mismo un texto cuyas características se describen con los siguientes parámetros:

<fuente> - El código de la fuente o tipo de letra que se va a utilizar. Aquí se debe poner un 0 cuando se quiera utilizar la fuente del sistema (fuente de color blanco, pequeña, de 6 por 8 puntos), o bien el código de fuente devuelto por la función load_fnt() cuando se carga una nueva fuente en el programa.

<texto> - En segundo lugar se especificará texto a escribir como un literal, es decir, un texto entre comillas (ver los símbolos delimitadores de literales).

<código de centrado> - Es un código que determina la posición del texto en la que situará el centro o punto de control del mapa creado. Sus posibles valores son:

  0-Arriba izquierda 1-Arriba 2-Arriba derecha
  3-Izquierda 4-Centro 5-Derecha
  6-Abajo izquierda 7-Abajo 8-Abajo derecha

El texto siempre estará encajado en un mapa nuevo de sus mismas dimensiones, pero este punto de control especificará que punto de dicho mapa se centrará en las coordenadas en las que posteriormente se sitúe el mismo.


Esta función se comporta practicaménte igual que load_map(), salvo que no se lee un archivo en disco con el gráfico, sino que se crea como un gráfico que contiene un mensaje escrito con una fuente de letras determinada.

Se devuelve como valor de retorno el código del gráfico, que es un valor numérico que debe especificarse para utilizar el gráfico, en la variable graph o, en general, en todas las funciones que requieran un código de gráfico entre sus parámetros.

Cuando se requiera dentro de una función el código de fichero al que pertenece dicho gráfico, se debe indicar el código 0 (que es el código del primer fichero FPG que se cargue en el programa).


Programa ejemplo:
PROGRAM ejemplo_write_in_map;

GLOBAL
    mi_fuente;

BEGIN
    mi_fuente=load_fnt("help\help.fnt");

    // Se crea un mapa nuevo con el texto "MOUSE"
    // con el punto de control en el centro, y se
    // asigna como gráfico del puntero del ratón.

    mouse.graph = write_in_map(mi_fuente,"MOUSE",4);

    REPEAT
        FRAME;
    UNTIL (key(_esc));
    unload_map(mouse.graph);
END


En el ejemplo se carga una fuente de letras con la función load_fnt(), y entonces se crea un mapa con la función write_in_map() guardando el código del gráfico que retorna en la variable mouse.graph, de forma que aparezca como puntero del ratón.

El nuevo mapa se crea con el mensaje "MOUSE" escrito con la fuente help.fnt, y su punto de control principal se sitúa en el centro (con el código 4).

Pulsando la tecla ESC se saldrá del bucle de visualización del programa y se descargará el gráfico con la función unload_map() (exactamente igual que si se hubiera cargado de un archivo del disco).

No obstante, no es necesario descargar el gráfico de memoria antes de finalizar el programa, ya que el sistema lo hará de forma automática.


La principal ventaja que proporciona la función write_in_map() es el poder tratar los textos como si se tratara de gráficos, con lo que se podrán rotar, escalar, imprimir con transparencia, etc.

Nota: Para que write_in_map() pueda mostrar un valor numérico se debe utilizar la función itoa(), que permite convertir un valor numérico en una cadena de texto.


Ver: write() - unload_map/pcx() - graph - itoa()