4D v16.3Arrays y objetos de formulario |
||
|
4D v16.3
Arrays y objetos de formulario
Arrays y objetos de formulario
Los arrays son objetos del lenguaje, usted puede crear y utilizar arrays que nunca aparecerán en una pantalla. Sin embargo, los arrays también son objetos de la interfaz del usuario. Los siguientes tipos de Objetos de formulario están soportados por arrays:
Puede predefinir estos objetos en el editor de formularios del entorno Diseño utilizando el botón de los valores por defecto de la ventana Lista de propiedades (excepto List box), también puede definirlos por programación utilizando los comandos de arrays. En ambos casos, el objeto de formulario está soportado por un array creado por usted o por 4D. Cuando utiliza estos objetos, puede detectar que elemento del objeto ha sido seleccionado (o recibió un clic) sometiendo a una prueba al elemento seleccionado del array. Inversamente, puede seleccionar un elemento particular del objeto designando el elemento seleccionado para el array. Cuando un array se utiliza para generar un objeto de formulario, tiene una naturaleza doble; es a la vez un objeto del lenguaje y un objeto de la interfaz del usuario. Por ejemplo, cuando diseña un formulario y crea un área de desplazamiento: El nombre de la variable asociada, en este caso atNombres, es el nombre del array que usted utiliza para crear y administrar el área de desplazamiento. Notas:
El siguiente ejemplo muestra cómo llenar un array y mostrarlo en una lista desplegable. Un array arSalarios se crea utilizando el comando ARRAY REAL. Contiene todos los salarios de las personas de una empresa. Cuando el usuario selecciona un elemento en el menú desplegable, el campo [Empleados]Salario recibe el valor escogido. Cree un menú desplegable y llámela arSalarios. El nombre del menú desplegable debe ser el mismo del Array. Inicialice el Array arSalarios utilizando el evento On Load para el objeto. Para hacer esto, recuerde activar el evento en la ventana Lista de propiedades, como se muestra a continuación:
Las líneas: ARRAY REAL(arSalarios;10) crean el array numérico 2500, 3000... 7000, correspondiente a los salarios anuales de $30 000 a $84 000, antes de impuestos. Las líneas: arSalarios:=Find in array(arSalarios;[Empleados]Salario) manejan la creación de un nuevo registro o la modificación de un registro existente.
Nota: para mayor información sobre el elemento de array seleccionado, lea la próxima sección. Para reportar el valor seleccionado del menú desplegable arSalarios, sólo necesita administrar el evento On Clicked del objeto. El número de elemento seleccionado es el valor del array arSalarios. Por lo tanto, la expresión arSalarios{arSalarios} devuelve el valor seleccionado en la lista desplegable. Complete el método de objeto arSalarios de esta forma: Case of El menú desplegable se ve así: La siguiente sección describe las operaciones comunes y básicas que usted realizará sobre arrays cuando los utiliza como objetos de formulario. Puede obtener el tamaño actual de un array utilizando el comando Size of Array. Utilizando el ejemplo anterior, la siguiente línea de código mostrará 5: ALERT("El tamaño del array atNombres es: "+String(Size of array(atNombres))) Puede reordenar los elementos del array utilizando el comando SORT ARRAY o de diferentes arrays utilizando el comando MULTI SORT ARRAY. Utilizando el ejemplo anterior, y siempre que el array se muestre como un área de desplazamiento: a. Al principio, el área se verá como la lista a la izquierda. b. Después de la ejecución de la siguiente línea de código: SORT ARRAY(atNombres;>) el área se verá como la lista en el medio. c. Después de la ejecución de la siguiente línea de código: SORT ARRAY(atNombres;<) el área se verá como la lista a la derecha. Puede añadir, insertar, o borrar elementos utilizando los comandos APPEND TO ARRAY, INSERT IN ARRAY y DELETE FROM ARRAY. Utilizando el ejemplo anterior, y siempre que el array se muestre como un área de desplazamiento, usted puede manejar los clics en esta área de la siguiente forma: ` Método de objeto área de desplazamiento atNombres Nota: los eventos deben ser activados en las propiedades del objeto. Mientras la sintaxis atNombres{$vlElem} le permite trabajar con un elemento particular del array, la sintaxis atNombres devuelve el número del elemento seleccionado en el array. De esta manera, la sintaxis atNombres{atNombres} significa “el valor del elemento seleccionado en el array atNombres.” Si ningún elemento ha sido seleccionado, atNombres es igual a 0 (cero), de manera que la prueba If (atNames#0) detecta si un elemento ha sido seleccionado realmente o no. Puede cambiar por programación el elemento seleccionado asignando un valor al array. ` Seleccionar el primer elemento (si el array no está vacío) El comando Find in Array busca un valor particular en un array. Utilizando el ejemplo anterior, el siguiente código seleccionará el elemento cuyo valor es “Ricardo,” si ese es el nombre introducido en la caja de diálogo de solicitud: $vsNombre:=Request("Introduzca el nombre:") Los menús desplegables, áreas de desplazamiento y pestañas generalmente pueden ser administrados de la misma manera. Evidentemente, no es necesario código adicional para redibujar objetos en la pantalla cada vez que cambie el valor de un elemento, o añada o borre elementos. Nota: para crear y utilizar pestañas con iconos y activar y desactivar pestañas, debe utilizar una lista jerárquica como objeto de soporte para la pestaña. Para mayor información, vea el ejemplo del comando New list. Mientras usted puede manejar menús desplegables, áreas de desplazamiento, y pestañas con los algoritmos descritos en la sección anterior, los combo boxes se manejan de forma diferente. Un combo box es en realidad un área de entrada de texto la cual está asociada a una lista de valores (los elementos del array). El usuario puede elegir un valor de esta lista, y luego editar el texto. Por lo tanto, para un combo box, la noción de elemento seleccionado no aplica. Con los combo boxes, nunca hay un elemento seleccionado. Cada vez que el usuario selecciona uno de los valores asociado al área, el valor se coloca en el elemento cero del array. Luego, si el usuario edita el texto, el valor modificado por el usuario también se coloca en el elemento cero. ` Método de objeto Combo Box asColores
Ver también
|
PROPIEDADES
Producto: 4D
HISTORIA
ARTICLE USAGE
Manual de lenguaje 4D ( 4D v16) |