@...GET LISTBOX
 Crea un objeto Get consistente en un cuadro de lista y lo muestra en pantalla
------------------------------------------------------------------------------
 Sintaxis

     @ <nSup>, <nIzq>, <nInf>, <nDer>
        GET <nVar|cVar>
        LISTBOX <aLista>
         [CAPTION <cTítulo>]
         [MESSAGE <cMensaje>]
         [WHEN <lCondiciónPrevia>]
         [VALID <lCondiciónPosterior>]
         [COLOR <cCadenaColor>]
         [FOCUS <fbloque>]
         [STATE <bBloque>]
         [DROPDOWN]
         [SCROLLBAR]
         [SEND <mensaje>]
         [GUISEND <mensajeGUI>]
         [BITMAP <cMapaBits>]

 Argumentos

     <nSup>, <nIzq>, <nInf> y <nDer> especifican las
     coordenadas de pantalla para el cuadro de lista y su título. No se
     visualizarán los objetos que excedan de los límites de la pantalla.

     GET <nVar|cVar> especifica el nombre de la variable asociada al
     mandato GET. Su valor indica qué elemento del cuadro de lista está
     seleccionado (si hay alguno). Si la variable es numérica contendrá la
     posición en la lista del elemento seleccionado. Un valor de 0 indica
     que no hay ningún elemento seleccionado. Si el valor es una cadena de
     caracteres, contendrá los datos o el texto asociado al elemento
     seleccionado. Si la cadena de caracteres no se corresponde con ningún
     elemento de la lista, entonces no hay ningún elemento seleccionado.

     LISTBOX <aLista> especifica una matriz que contiene los elementos
     de la lista. La matriz puede ser de una o dos dimensiones. Se utiliza
     una matriz de una única dimensión cuando los datos que se muestran
     coinciden con los que se van a guardar; de lo contrario, se utiliza una
     matriz de dos dimensiones. En este último caso, se visualizan los
     datos del primer elemento de cada submatriz y los datos del segundo
     elemento se utilizan para el tratamiento de la selección.

     CAPTION <cTítulo> especifica una cadena de caracteres que describe
     en pantalla, de forma concisa, el significado del GET. Existen dos
     diferencias entre CAPTION y SAY. La primera es que el título aparece
     cada vez que el GET se muestra en pantalla. La segunda es que el
     título y su posición en pantalla se almacenan en el objeto Get. Esto
     permite que el GET pueda recibir la entrada del usuario al hacer clic
     en el título con el botón izquierdo del ratón. Por defecto, el título
     aparece a la izquierda del GET. Es posible utilizar las variables
     capRow y capCol del objeto Get para modificar la posición en pantalla
     del título.

     Si en la cadena de caracteres del título está presente el carácter &,
     el carácter que le sigue se utiliza como tecla aceleradora del cuadro
     de lista. La tecla aceleradora es un método rápido para pasar el foco
     de entrada al cuadro de lista. Para seleccionarlo se pulsará la tecla
     Alt en combinación con la tecla aceleradora. En las teclas
     aceleradoras no se distingue entre mayúsculas y minúsculas.

     MESSAGE <cMensaje> especifica la cadena de caracteres que aparece
     en la barra de la línea de estado del sistema del Get cuando el GET
     tiene el foco de entrada. Normalmente, contiene una breve descripción
     o una respuesta al usuario acerca del GET. Consulte el mandato READ
     para obtener detalles del funcionamiento de la barra de estado del
     sistema Get.

     WHEN <lCondiciónPrevia> especifica una expresión que debe
     satisfacerse antes de que el cursor entre en el GET durante un mandato
     READ. La expresión puede ser, opcionalmente, un bloque de código. El
     objeto Get se pasa como parámetro al bloque de código.

     VALID <lCondiciónPosterior> especifica una expresión que debe
     satisfacerse antes de que el cursor pueda salir del GET durante un
     mandato READ. La expresión puede ser, opcionalmente, un bloque de
     código. El objeto Get se pasa como parámetro al bloque de código.

     COLOR <cCadenaColor> define los colores seleccionados para el
     cuadro de lista. <cCadenaColor> es una expresión de caracteres que
     contiene siete parámetros de color si la lista no es desplegable y ocho
     si lo es.

     Atributos de color del cuadro de lista
     ------------------------------------------------------------------------
     Posición        Se aplica a                        Valor por defecto
     en colorSpec                                       (parámetros de color
                                                        del sistema)
     ------------------------------------------------------------------------
     1                Los elementos no seleccionados de      No seleccionado
                      la lista cuando ésta no tiene el
                      foco de entrada
     2                El elemento seleccionado de la         No seleccionado
                      lista cuando ésta no tiene el
                      foco de entrada
     3                Los elementos no seleccionados         No seleccionado
                      de la lista cuando ésta tiene
                      el foco de entrada
     4                El elemento seleccionado de la         Mejorado
                      lista cuando ésta tiene el
                      foco de entrada
     5                El borde del cuadro de lista           Borde
     6                El título del cuadro de lista          Estándar
     7                La tecla aceleradora del título del    Fondo
                      cuadro de lista
     8                El botón del cuadro de lista           Estándar
                      desplegable
     ------------------------------------------------------------------------

     Nota:  En el modo gráfico, la posición 8 de colorSpec no tiene
     ningún efecto y se ignora.

     FOCUS <fbloque> especifica un bloque de código que se evalúa cada
     vez que el cuadro de lista recibe el foco. El bloque de código no
     tiene argumentos implícitos. La variable de instancia ListBox:hasFocus
     se utiliza para determinar si el cuadro de lista tiene el foco.

     STATE <bBloque> especifica un bloque de código que se evalúa cada
     vez que cambia el estado del objeto cuadro de lista. El bloque de
     código no tiene argumentos implícitos. La variable de instancia
     ListBox:buffer se utiliza para determinar la selección actual.

     DROPDOWN define el cuadro de lista como desplegable. Los cuadros
     de lista desplegables se diferencian de los normales en que estos se
     visualizan completos aunque no tengan el foco de entrada. La
     presentación de un cuadro de lista desplegable depende de si está
     abierto o cerrado. Por defecto, está cerrado y, por lo tanto,  sólo
     aparece en pantalla el título, el elemento seleccionado y el botón de
     apertura:

     Cuando está desplegado, se visualizan entonces los elementos del cuadro
     de lista:

     Los cuadros de lista desplegables son útiles cuando el espacio de
     pantalla es limitado.

     SCROLLBAR define barras de desplazamiento en el cuadro de lista
     sean o no necesarias. Normalmente, cuando los datos visualizados caben
     dentro del cuadro de lista no se necesita una barra de desplazamiento.

     SEND <mensaje> envía el mensaje especificado al objeto Get.
     <mensaje> se envía antes de la visualización del GET. Es posible enviar
     cualquier mensaje, incluidas las llamadas a métodos y asignaciones de
     variables de instancia. Las llamadas a métodos deben incluir paréntesis
     aunque no se pasen argumentos.

     GUISEND <mensajeGUI> se puede utilizar para enviar un mensaje (por
     ejemplo, el método Display()) a un objeto GUI. Los objetos GUI en
     CA-Clipper son cuadros de selección, cuadros de lista, botones y grupos
     de botones de opción. Para enviar un mensaje a un objeto que no sea
     GUI, por ejemplo objetos Get y TBrowse, se utiliza la cláusula SEND.

     BITMAP <cMapaBits> define el mapa de bits que representa la flecha
     abajo del cuadro de lista desplegable. El nombre del fichero del mapa
     de bits no debe incluir ni la unidad ni el directorio; en cambio, la
     extensión es obligatoria. Un mapa de bits se puede almacenar tanto en
     un fichero de disco como en una biblioteca de mapa de bits. En el
     primer caso se debe almacenar en el directorio de la aplicación. Si se
     guarda en una biblioteca, ésta debe estar en el directorio de la
     aplicación, debe tener el mismo nombre y la extensión .BML.

     CA-Clipper busca primero el nombre del fichero en el disco, si no lo
     encuentra, busca en la biblioteca de mapas de bits. Si no encuentra el
     fichero ni en el disco ni en la biblioteca no visualiza ningún mapa de
     bits.

 Ejemplos

      Este ejemplo muestra cómo añadir un cuadro de lista a una
        pantalla de entrada de datos. Se utiliza un método de selección
        basado en la posición:

        nColor := 1 // por defecto, el primer elemento.
        @ 5, 20, 8, 28 GET nColor LISTBOX { "Rojo", "Verde", "Azul" }

      Este ejemplo muestra un cuadro de lista con un título y un
        mensaje. Se utiliza un método de selección basado en los datos:

        cColor := "Rojo" //por defecto rojo.
        @ 5, 20, 8, 28 GET cColor LISTBOX { "Rojo", "Verde", "Azul" };
               CAPTION "&Color" ;
               MESSAGE "Seleccione el color de fondo "

      Este ejemplo muestra un cuadro de lista que utiliza una matriz
        de dos dimensiones:

        cProvincia := "MA"

        @ 5, 20, 10, 30 GET cProvincia LISTBOX {{ "Albacete", "AB" }, ;
                                    { "Alicante", AL" }   , ;
                                    { "Almería", "AM" }, ;
                                    { etc.          } } ;
               CAPTION "&Provincia" ;
               MESSAGE "Seleccione la provincia del cliente"

 Ficheros   La librería asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: @...GET Get ListBox READ