@...GET
 Crea un nuevo objeto Get y lo muestra en la pantalla
------------------------------------------------------------------------------
 Sintaxis

     @ <nFila>, <nColumna>
        [SAY <exp>
           [PICTURE <cPatróndeFormatoSay>]
           [COLOR <cCadenaColor>]]
        GET <idVar>
           [PICTURE <cPatróndeFormatoGet>]
           [COLOR <cCadenaColor>]
           [CAPTION <cTítulo>]
           [MESSAGE <cMensaje>]
           [WHEN <lCondiciónPrevia>]
           [RANGE* <dnMínimo>, <dnMáximo>] |
           [VALID <lCondiciónPosterior>]
           [SEND <mensaje>]
           [GUISEND <mensajeGUI>]

 Argumentos

     <nFila> y <nColumna> especifican las coordenadas de fila y
     columna de la operación. Si existe una cláusula SAY, <nFila> y
     <nColumna> especifican las coordenadas de la cláusula SAY y GET aparece
     a la derecha de la salida de SAY. Si no existe una cláusula SAY,
     <nFila> y <nColumna> especifican directamente las coordenadas del
     mandato GET. En ambos casos, no se visualizarán los objetos que excedan
     de los límites de la pantalla.

     SAY <exp> muestra el valor de <exp> en las coordenadas
     especificadas. Si especifica la cláusula PICTURE <cPatróndeFormatoSay>,
     <exp> se formatea de acuerdo con las reglas de los patrones de salida
     SAY.

     GET <idVar> especifica el nombre de la variable asociada al mandato
     GET. El almacenamiento de <idVar> puede ser de cualquier clase (si esta
     clase es ambigua, se aplicará FIELD). Si <idVar> contiene un valor de
     matriz, debe indicar uno o más subíndices. El valor actual de <idVar>
     se muestra en las coordenadas de GET, y éste debe ser de tipo carácter,
     fecha, numérico o valor lógico. No se permiten matrices, NIL, bloques
     de código ni cadenas nulas.

     PICTURE <cPatróndeFormatoGet> especifica el formato de pantalla y
     las reglas de edición del mandato GET.

     COLOR <cCadenaColor> define los colores seleccionados para el
     objeto GET. <cCadenaColor> es una expresión de caracteres que contiene
     uno o más colores. Los valores literales de colores se escriben entre
     comillas.

     Si especifica dos colores, el primero determina el color del objeto
     cuando no está seleccionado (el color con el que se muestra el objeto
     GET) y el segundo el color del objeto Get cuando está seleccionado (el
     color cuando el objeto Get tiene el foco de entrada). Si especifica un
     solo color, éste se empleará tanto como color de selección como de no
     selección.

     En un mandato combinado @...SAY...GET , se requieren dos cláusulas
     COLOR: una para especificar el color de SAY y otra para el de GET.

     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 del título en
     pantalla. Tenga en cuenta que la cláusula CAPTION se ignora si se
     utiliza la cláusula SAY.

     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 GET. La
     tecla aceleradora proporciona un mecanismo adecuado y rápido para mover
     el foco de entrada. Para seleccionar el GET 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 una cadena de caracteres que aparece
     en la barra de la línea de estado del sistema 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 SET MESSAGE
     para obtener detalles del funcionamiento de la barra de estado del
     sistema Get.

     WHEN <CondiciónPrevia> especifica una expresión que debe
     satisfacerse antes de que el cursor entre en 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.

     RANGE* <dnMínimo>, <dnMáximo> especifica un rango de valores
     permitidos como entrada del mandato GET. Durante un mandato READ si
     introduce un nuevo valor GET que no esté comprendido en el rango
     especificado, el cursor no puede salir del objeto GET.

     VALID <lCondiciónPosterior> especifica una expresión que debe
     satisfacerse antes de que el cursor pueda salir del objeto 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.

     SEND < mensaje> envía el mensaje especificado al objeto Get.
     <mensaje> se envía antes de visualizar el 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.

 Descripción

     El mandato @...GET crea un nuevo objeto Get, muestra su valor y lo
     añade a la matriz cuya referencia contiene la variable GetList. Si no
     se ha declarado o creado en el procedimiento actual una variable
     llamada GetList, y no existe ninguna variable PRIVATE llamada GetList
     de algún procedimiento anterior, el sistema utiliza la variable PUBLIC
     GetList predefinida. Los mandatos READ posteriores activan los GET
     contenidos en la matriz GetList y permiten al usuario editar su
     contenido.

     Cada objeto Get tiene una variable asociada, <idVar>. El almacenamiento
     de esta variable puede ser de cualquier clase, como campos de base de
     datos, variables privadas, públicas, locales o estáticas. Si <idVar> va
     seguido de uno o más subíndices, el elemento especificado de la matriz
     se asocia con el GET. Cuando se crea el objeto Get, el nombre <idVar>
     se almacena en él junto con un bloque de código que permite recuperar o
     asignar el valor de <idVar> durante un mandato READ.

     El mandato READ edita en pantalla completa los objetos Get contenidos
     en la matriz GetList. Al desplazar el cursor a cada GET, el valor de la
     <idVar> asociada se recupera a partir de la evaluación del bloque de
     código guardado en el objeto Get. El valor se convierte en texto y se
     coloca en una memoria intermedia dentro del objeto Get. El usuario
     puede visualizar y editar el contenido de esta memoria. Cuando el
     cursor sale del GET, la memoria intermedia actualizada se convierte de
     nuevo en el tipo de datos apropiado y se asigna a <idVar>.

     Formato y validación automáticos: Durante un mandato READ, se
     realizan algunas operaciones de formato y validación de edición
     automática de valores numéricos, lógicos y de fecha. Al mismo tiempo
     todos los datos introducidos por el usuario se van comprobando
     automáticamente a medida que los escribe para evitar introducir
     caracteres no válidos.

     Prevalidación: La cláusula WHEN especifica una condición que debe
     cumplirse antes de que el cursor entre en un GET. Durante un mandato
     READ, la <lCondiciónPrevia> se evalúa siempre que el usuario intenta
     desplazar el cursor dentro del GET. Si el resultado de la expresión es
     verdadero (.T.), el cursor puede entrar. En caso contrario se ignora el
     GET y se pasa al siguiente.

     Postvalidación: Puede realizar una postvalidación mediante las
     cláusulas VALID o RANGE*. VALID especifica una condición que debe
     cumplirse antes de que el cursor pueda salir del GET. Durante un
     mandato READ, se evalúa la <lCondiciónPosterior> cuando el usuario
     intenta mover el cursor fuera del GET. Si el resultado es verdadero
     (.T.) el cursor puede salir; en caso contrario, el cursor permanece en
     el GET. RANGE* especifica un rango de valores aceptables para valores
     numéricos o de fechas. Si el valor introducido por el usuario no se
     encuentra en el rango especificado, el cursor no puede salir del GET.

 To download this example - click here.

See Also: ?|?? @...SAY CLEAR COL() PCOL() PROW() READ