Portada
Banner
Portada Foros Manuales Enlaces Email
clear1x1.gif clear1x1.gif clear1x1.gif
clear1x1.gif
clear1x1.gif

Portada
Foros
Manuales
Enlaces
Distribuidores
Precios
Sugerencias

Contacto

 

clear1x1.gif clear1x1.gif
 Guía rápida de inicio al GUI de Visual Pro/5 (Parte 35/68)
Primero Previo Próximo Último

Para borrar todos los ítems de una lista, use 'LISTCLR'.

A como lo detallamos en la Sección 3, la función CTRL puede ser utilizada para obtener información de un control de tipo de lista en cualquier momento. Recordemos que la función CTRL 1 ("Obtener Texto") recupera el texto de todos los ítems seleccionados en la lista. Intente seleccionar uno o más ítems y emitir este comando.

PRINT CTRL(1,101,1)

Usted verá el texto de todos los ítems seleccionados en la lista. Un caracter {linefeed} es añadido después de cada uno excepto del último ítem listado. Para ver el texto de absolutamente todos los detalles en la lista (seleccionados o no), use la función de CTRL 7 ("Obtener Todo el Texto"). En este caso, un caracter de {linefeed} es añadido después de a todos los ítems, incluyendo el último.

PRINT CTRL(1,101,7)

A veces es más fácil operar con el índice de ítem seleccionado(s) que con las etiquetas (labels). La función de CTRL 2 ("Obtener Valor") nos da un código-binario de dos bytes por cada ítem seleccionado. Estos están concatenados, de modo que la longitud del string es siempre dos veces la cantidad de ítems seleccionados. Para obtener cada uno de los índices en el string debemos utilizar la función DEC.

A$=CTRL(1,101,2)

La función de CTRL 3 ("Obtener Cuenta") nos retorna dos valores binarios de dos bytes consecutivos. El primero nos informa la cantidad de ítems seleccionados. El segundo nos informa del número total de ítems en la lista.

A$=CTRL(1,101,3)     -->   DEC(A$(1,2)) = Cantidad registros seleccionados
                                          DEC(A$(3,2)) = Cantidad de registros en la lista.

Hasta el momento solamente hemos considerado el tipo de control de una caja de lista. Cambiémonos ahora al 'LISTBUTTON', para lo cual vamos a cambiar el programa de modo que la línea 40 nos genere un control de botón de lista, como sigue.

0040 PRINT (1)'LISTBUTTON'(101,10,10,80,80,"",$$)

El botón de lista no puede permitir selecciones múltiples, de modo que tuvimos que eliminarle la bandera. Por lo demás, el programa es idéntico. Trate de correrlo y observe la diferencia.

El mnemónico 'LISTSEL' en la línea 45 aún trabaja, así que "Paul" aparece como la selección inicial. Normalmente, el control del botón de lista ocupa solamente la porción principal de su rectángulo unificador, pero el tamaño puede ser más grande (como en este ejemplo tiene 80 x 80 semicaracteres) para permitir tener espacio para la lista cuando este es activado. Listas de ítems de doble-click no son posibles, pero selecciones son todavía reportadas como eventos tipo "l" (ele).

Es por eso que, un botón de lista opera idénticamente a una caja de lista. Interrumpa el programa e intente practicar con algunos de los mnemónicos que vio anteriormente, como 'LISTSEL', 'LISTADD', 'LISTDEL', y 'LISTCLR'. La función CTRL trabaja igual de bien, aun cuando la cantidad de ítems seleccionados siempre sea 0 o 1.

El control del mnemónico 'LISTEDIT' muestra algo parecido al 'LISTBUTTON', pero se comporta de otro modo, ya que una entrada de texto de formato libre puede ser hecha. En muchas formas, el control del 'LISTEDIT' es un cruce entre una caja de edición y un botón de lista. El programa puede poblar la lista, pero solamente el usuario puede tomar ítems de la lista y usarlos para poblar la caja de edición. El programa nunca podrá establecer una selección actual, pero puede en su lugar forzar texto en una porción de la caja de edición del control utilizando el mnemónico 'TITLE'.

Por lo tanto tenemos que hacer dos cambios a nuestro programa. Primero, tenemos que crear una lista de edición en lugar de un botón de lista. Eso es fácil (cambie la línea 40). Segundo, no podemos utilizar 'LISTSEL' ya más (eliminar línea 45). Para establecer el contenido inicial del control, vamos a especificar justamente un título cuando creamos el objeto. La otra opción sería utilizar el mnemónico 'TITLE'.

0040 PRINT (1)'LISTEDIT'(101,10,10,80,80,"Paul",$$)
DELETE 45

Cuando usted corra el programa, usted va a notar que trabaja muy igualmente a la forma en que dijimos, con la excepción que usted puede ahora digitar cualquier cosa en el control. Los eventos del tipo 'l' (ele) no son reportados por más tiempo, ya que la operación de la lista es solamente una manera de como los contenidos de control pueden ser cambiados. Los eventos tipo 'f' (enfoque del control de edición) y 'e'  (modificación del control de edición) son reportados en lugar de eso, justamente como estos son reportados para una caja de edición ordinaria.

Primero Previo Próximo Último

Portada -- Foros -- Manuales -- Enlaces-- Sugerencias
Para comentarios: webmaster@essnet.com

clear1x1.gif
clear1x1.gif
clear1x1.gif
Portada Email Foros