GMODE()
 Cambia el modo de vídeo
------------------------------------------------------------------------------
 Sintaxis

     GMODE([<nModo>]) --> aAntEstado

 Argumentos

     <nModo> es un valor numérico que representa el modo de vídeo.

     Los valores válidos para este argumento están definidos en el fichero
     Llibg.ch y se muestran en la tabla siguiente:

     Constantes del modo de vídeo
     ------------------------------------------------------------------------
     Constante                     Descripción
     ------------------------------------------------------------------------
     LLG_VIDEO_TXT                 Cambia a modo texto
     LLG_VIDEO_VGA_640_480_16      Cambia a modo VGA 640x480x16
     LLG_VIDEO_VESA_800_592_16     Cambia a modo VESA 800x592x16
     LLG_VIDEO_VESA_1024_768_16    Cambia a modo VESA 1024x768x16
     LLG_VIDEO_VESA_1280_1024_16   Cambia a modo VESA 1280x1024x16
     LLG_VIDEO_VESA_640_480_256    Cambia a modo VESA 640x480x256
     LLG_VIDEO_VESA_800_592_256    Cambia a modo VESA 800x592x256
     LLG_VIDEO_VESA_1024_768_256   Cambia a modo VESA 1024x768x256
     LLG_VIDEO_VESA_1280_1024_256  Cambia a modo VESA 1280x1024x256
     ------------------------------------------------------------------------

     Nota:  LLG_VIDEO_TEXT y LLG_VIDEO_VGA_640_480_16 son los dos únicos
     modos aplicables a CA-Clipper.

     Es posible utilizar un signo menos como prefijo de <nModo>. Si se
     especifica un valor negativo, GMODE() sólo comprueba si el modo <nModo>
     está disponible.

 Devuelve

     Si el modo de vídeo especificado está disponible, GMODE() devuelve una
     matriz que contiene información acerca del modo de vídeo. La tabla
     siguiente muestra la estructura de esta matriz:

     Estructura de aAntEstado
     ------------------------------------------------------------------------
     Posición en la matriz     Valor devuelto
     ------------------------------------------------------------------------
     LLG_MODE_TEXT_ROW         Valor numérico que representa el número
                               de filas de la pantalla en modo texto.
     LLG_MODE_TEXT_COL         Valor numérico que representa el número
                               de columnas de la pantalla en modo texto.
     LLG_MODE_GRAPH_ROW        Valor numérico que representa el número
                               de filas de la pantalla en modo gráfico.
     LLG_MODE_GRAPH_COL        Valor numérico que representa el número
                               de columnas de la pantalla en modo gráfico.
     LLG_MODE_FONT_ROW         Valor numérico que representa el número
                               de filas por carácter en modo gráfico.
     LLG_MODE_FONT_COL         Valor numérico que representa el número
                               de columnas por carácter en modo gráfico.
     LLG_MODE_COLOR_MAX        Valor numérico que representa el número
                               de colores disponibles.
     LLG_MODE_IN_USE           Valor numérico que representa el modo
                               de vídeo que se estaba utilizando antes
                               de llamar a GMODE().
                               Consulte la tabla de la sección Argumentos.
     LLG_MODE_LIB_VERSION      Valor numérico que representa la versión
                               de la biblioteca LLIBG.
     LLG_MODE_LST_COLOR        Valor numérico que representa el último
                               color utilizado en una función GXXX().
                               Cuando en una función GXXX() no se define
                               el parámetro de color, se utiliza este valor.
                               El valor inicial es 7.
     LLG_MODE_LST_MODE         Valor numérico que representa el último modo
                               (SET|AND|OR|XOR).
     ------------------------------------------------------------------------

     Si <nModo> se omite, GMODE() devuelve la configuración del modo actual
     de vídeo.

 Descripción

     La función GMODE() se utiliza para cambiar el modo de vídeo u obtener
     información acerca del modo de vídeo actual. El modo gráfico de
     CA-Clipper admite los modos de vídeo descritos anteriormente.
     LLG_VIDEO_TEXT y LLG_VIDEO_VGA_640_480_16 son los únicos modos de
     vídeo compatibles con CA-Clipper. En cualquier momento puede conmutar
     el modo de vídeo. Para pasar a modo texto utilice GMODE(LLG_VIDEO_TXT).
     Si GMODE() se llama sin especificar parámetros no se produce ningún
     cambio de modo, sino que simplemente se devuelve información acerca del
     modo de vídeo actual.

     Al cambiar del modo LLG_VIDEO_TXT al modo LLG_VIDEO_VGA_640_480_16, el
     texto de la pantalla se convierte a caracteres gráficos equivalentes.
     Esta conversión no se produce si se cambia a modo texto desde modo
     gráfico. Si es preciso iniciar el modo gráfico con la pantalla vacía,
     llame a CLS antes de llamar a GMODE (LLG_VIDEO_VGA_640_480_16).

     ¡Importante! Para cambiar el modo de vídeo, se debe utilizar el
     mandato SET VIDEOMODE. De lo contrario, el cambio no se efectuará
     correctamente.

 Notas

     Cuando se cambia de modo de vídeo, la biblioteca llama a la función de
     CA-Clipper SETMODE(), con los valores 25,80 como parámetros. Si se
     utilizan otros valores, debe llamar a SETMODE (nSuFila,nSuCol) después
     de la llamada a GMODE().

     En modo gráfico, es posible acceder a todas las filas y columnas de la
     pantalla. Si se produce una llamada a SETMODE() con un número de líneas
     menor o igual que 30, el modo gráfico de CA-Clipper utilizará una
     fuente de 16 píxeles, por lo que la pantalla será de 30 filas.

     Por ejemplo, si se llama a SETMODE (25,80) con una fuente de 8 píxeles
     de ancho por 16 píxeles de alto, y se cambia al modo de vídeo
     LLG_VIDEO_VGA_640_480_16, se utiliza la fuente anterior. Por lo tanto,
      se obtienen 5 filas de texto adicionales a las 25 especificadas, es
     decir, (480/16) = 30 filas de texto.

     CA-Clipper calcula el tamaño de las fuentes a partir de los parámetros
     del modo de vídeo tal como muestra la tabla siguiente:

     Cálculo de SETMODE(nFila, nColumna)
     ------------------------------------------------------------------------
     nFila      Fuentes                       Número de filas disponibles
     ------------------------------------------------------------------------
     31- 34     Fuente de 14 píxeles          34
     43         Consulte la nota siguiente
     60+        Fuente de 8 píxeles           60
     ------------------------------------------------------------------------

     Nota: El modo de 43 filas para una emulación EGA de una tarjeta VGA
     no está disponible en el modo 640 x 480 x 16.

     A continuación se detallan los parámetros disponibles:

     Parámetros disponibles
     ------------------------------------------------------------------------
     Anchura / Altura en píxeles       Columna / Fila
     ------------------------------------------------------------------------
     640 x  480                        80 x  30 o 80 x  60
     800 x  592                        100 x  37 o 100 x  74
     1024 x  768                       128 x  48 o 100 x  96
     1280 x 1024                       160 x  64 o 160 x 128
     ------------------------------------------------------------------------

     Al ejecutar un QUIT o el último RETURN de la aplicación, ésta cambia de
     forma automática al modo inicial de vídeo, que normalmente es el modo
     texto.

     Nota:  CA-Clipper utiliza las fuentes ROM de la tarjeta VGA. De
     esta forma se aumenta la velocidad de la visualización de texto y se
     reduce a cero el uso de la memoria principal, ya que no hace falta
     cargar ninguna fuente. Lo mismo ocurre en el modo gráfico. Otra ventaja
     es que no es necesario suministrar ficheros de fuentes junto con el
     fichero ejecutable .EXE.

 Ejemplos

      Este ejemplo ejecuta toda una aplicación en modo gráfico:

        // Cambia a modo gráfico
        SET VIDEOMODE TO LLG_MODE_VGA_640_480_16

        // Esto es equivalente a GMODE (LLG_VIDEO_VGA_640_480_16)
        // A partir de ahora, las sentencias de CA-Clipper
        // operan en modo gráfico
        .
        .
        .
        QUIT                         // Fin de la aplicación

      Este ejemplo guarda en variables los parámetros del modo
        gráfico para utilizarlos más adelante:

        // Cambia a modo gráfico y guarda sus parámetros
        SET VIDEOMODE TO LLG_MODE_VGA_640_480_16
        aModo := GMODE()
        // Almacena los distintos valores
        nFilaTxt    := aModo[LLG_MODE_TEXT_ROW]
        nColTxt     := aModo[LLG_MODE_TEXT_COL]
        nFilaGra    := aModo[LLG_MODE_GRAPH_ROW]
        nColGra     := aModo[LLG_MODE_GRAPH_COL]
        nFilaFon    := aModo[LLG_MODE_FONT_ROW]
        nColFon     := aModo[LLG_MODE_FONT_COL]
        nMaxColor   := aModo[LLG_MODE_COLOR_MAX]
        nModoVideo  := aModo[LLG_MODE_IN_USE]

        nVerBib     := aModo[LLG_MODE_LIB_VERSION]
        nUltColor   := aModo[LLG_MODE_LST_COLOR]
        nUltModo    := aModo[LLG_MODE_LST_MODE]

      Este ejemplo crea dos pseudofunciones que devuelven el número
        de líneas y columnas en píxeles (similares a MAXROW() y MAXCOL()):

        #translate GMAXFIL()   => GMODE()[LLG_MODE_GRAPH_ROW]
        #translate GMAXCOL()   => GMODE()[LLG_MODE_GRAPH_COL]

      Esta función, que es similar a la anterior, devuelve el número
        de colores disponibles:

        #translate GMAXCOLOR() => GMODE()[LLG_MODE_COLOR_MAX]

 Ficheros   La biblioteca asociada es LLIBG.LIB,
            el fichero de cabecera asociado es Llibg.ch.

 To download this example - click here.

See Also: SET VIDEOMODE