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 34/68)
Primero Previo Próximo Último

Trate de correr el programa y experimente con la caja de lista. Note que la barra de desplazamiento no opera porque aún no tenemos suficientes ítems en la lista. La barra de desplazamiento se activará automáticamente por si misma cuando suficientes ítems sean añadidos. El tipo de eventos 'l' solamente indica que un click o doble-click fue hecho en un ítem de la lista. Para determinar la selección hecha nuevamente hay que usar CTRL, como se muestra más adelante. Generalmente, solamente un ítem puede ser seleccionado a la vez.

El nuevo mnemónico 'LISTBOX' tiene la sintaxis que ya nos es familiar para crear un control. El título es especificado como un string vacío en este caso debido a que el título no tiene importancia. Cajas de lista nunca muestran un título. El mnemónico 'LISTADD' puede ser usado para añadir detalles a una lista. Nuevos ítems son añadidos antes del índice de detalle especificado en el segundo parámetro. Se necesita un -1 como segundo parámetro para añadir los nuevos detalles al final de la lista. Existe una "forma larga" para el mnemónico 'LISTADD', para evitar colocar lotes de ítems en el parámetro de lista del mnemónico (que son de tamaño limitado). Este es un ejemplo de la forma larga:

0041 PRINT (1)'LISTADD'(101,-1,4),
0042 WRITE (1)"John","Paul","George","Ringo"

No olvide la coma al final de la línea 41. Esta es importante debido a que la forma larga de 'LISTADD' prepara el canal para recibir un número de ítems (4 en este caso) escritos luego directamente al canal. Estos ítems tienen cada uno un 'linefeed' como terminador de campo. Si la línea 41 no es finalizada con una coma, un 'linefeed' es enviado al canal inmediatamente después de la sentencia 'LISTADD', lo que causará que los primeros 4 ítems de la lista sean blancos.

¡SUGERENCIA! Observe también en línea 42 el uso de WRITE en lugar del PRINT. El WRITE inserta un 'linefeed' después de cada ítem escrito, que justamente es lo qué deseamos en este caso. Utilizaremos de nuevo este truco con controles de barras de desplazamiento, y nuevamente con menús, posteriormente.

Ahora vamos a cambiar el programa de modo que la caja de lista permitirá selecciones múltiples. Esto es fácil... solamente debemos cambiar la línea 40 agregando la bandera para "selecciones múltiples".

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

Córralo de nuevo, y verá que con Ctrl-click se seleccionarán y des-seleccionarán ítems individuales, y también verá que Shif-click puede ser usado para seleccionar rangos.

En este ejemplo, ningún ítem es seleccionado inicialmente, pero podemos lograrlo con el mnemónico 'LISTSEL', el cual selecciona algunos ítems en una lista y automáticamente des-selecciona todos los otros. Vamos a añadirlo al programa.

0045 PRINT (1)'LISTSEL'(101,1)

La línea anterior provocará que el  ítem "Paul" (segundo) sea seleccionado. La lista de índices está basada en cero.

Hay un grupo adicional de otros mnemónicos especiales para manipulación de los controles de tipos de lista. Corra el programa e interrúmpalo para experimentar con estos en modo inmediato. Recuerde que para volver a visualizar la ventana gráfica puede dar <Alt>+<Tab>.

PRINT (1)'LISTDEL'(101,0)

Esto elimina un ítem de la lista. El índice 0 es el que corresponde al primer ítem en la lista. Usted puede experimentar eliminando otros ítems.

PRINT (1)'LISTUNSEL'(101,1)

El mnemónico 'LISTUNSEL' des-selecciona algunos ítems de la lista. En el ejemplo anterior, el segundo ítem de la lista no es seleccionado. Inténtelo seleccionando con el ratón, y luego des-selecciónelo con esta declaración de programa.

PRINT (1)'LISTMSEL'(101,0)

El mnemónico 'LISTMSEL' es para ser usado con cajas de lista que permitan selecciones múltiples. 'LISTSEL', como usted recordará, selecciona un ítem y des-selecciona todos los demás. 'LISTMSEL' le permite seleccionar un ítem y le deja los que ya estuvieran seleccionados también activos. Naturalmente, estos solo trabajan con cajas de lista que permiten selecciones múltiples. Este ejemplo selecciona el primer ítem en una lista, dejando todos los demás ítems solos.

PRINT (1)'LISTADD'(101,0,"Peter")

Usted puede añadir ítems a una lista que ya contenga algunos. Este ejemplo añade "Peter" como el nuevo primer ítem en la lista, corriendo los otros ítems hacia abajo un espacio.

PRINT (1)'LISTCLR'(101)

Primero Previo Próximo Último

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

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