¿ Eliminar u ocultar los controles de su contenedor ? - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: General (https://gambas-es.org/forum-4.html) +--- Tema: ¿ Eliminar u ocultar los controles de su contenedor ? (/thread-1342.html) |
¿ Eliminar u ocultar los controles de su contenedor ? - Shell - 03-05-2023 Buenas! Tengo que eliminar una serie de controles en un contenedor. Pero la eliminación de estos es un poco más complicado que ocultarlos. Por otro lado cuando se elimina un control, ¿ se elimina o queda invalido ?. He creado este ejemplo. En un panel añado picturebox desde los botones de abajo, su imagen varia dependiendo si quiero que muestre un círculo o un cuadrado. Puedo ocultar cada uno de los controles, ¿ pero seria posible eliminarlos ?. Acordaros que los controles en su contenedor tienen un indice. Si es un array, haceros a la idea de lo que quiere decir eso, cuando eliminas un elemento y lo que ocurre con sus indices. Actualmente solo oculto los controles creados. Para eliminar se debe hacer click sobre la figura. Código: 'Actualmente no los elimina, los oculta Subo el ejemplo. Saludos RE: ¿ Eliminar u ocultar los controles de su contenedor ? - Shordi - 03-05-2023 En principio lo mismo da, supongo. Todo dependería del objetivo del programa y de su evolución ¿Hay que crear más controles luego? entonces quizá mejor ocultarlos y reutilizarlos, ¿Son demasiados y la memoria va creciendo? Entonces mejor eliminarlos, etc. Saludos RE: ¿ Eliminar u ocultar los controles de su contenedor ? - Shell - 03-05-2023 (03-05-2023, 08:53)Shordi escribió: En principio lo mismo da, supongo. Todo dependería del objetivo del programa y de su evolución ¿Hay que crear más controles luego? entonces quizá mejor ocultarlos y reutilizarlos, ¿Son demasiados y la memoria va creciendo? Entonces mejor eliminarlos, etc. Pues te cuento, en el test de las preguntas en inglés, tengo un panel, dentro de este, subpaneles por cada pregunta, en cada subpanel contiene una etiqueta, una caja de texto y un textlabel. Si creo diez preguntas y luego quiero volver a realizar otro test de diez preguntas, todos los subpaneles "deberían" ser eliminados y creados de nuevo. Por eso creé este ejemplo a modo de prueba. En el ejemplo de los picturebox que ves arriba, "podía" haber añadido en la propiedad tag de cada picturebox, un indice. Pero eso crea un problema, si elimino el 5, el 6 debería pasar a ser el 5 y esto al final daría problemas con que no existe "tal" indice de elemento. Eso en el caso de que se usase Panel.Children[indice].remove() o delete. ( En realidad todo esto son problemas muy básicos (eso creo) de no saber desarrollarlos, o peor estar obsesionado con realizarlo de una manera concreta y me quedo "atrancado", cuando puede existir otra más sencilla ). Para eliminar un hijo del contenedor estaba usando last.tag. Panel.Children[last.tag].remove(). Lógicamente eso da problemas. Por otra parte el estar falto de practica, crea estos problemas. P.d No se me había ocurrido reutilizarlos. El tiempo del borrado y la creación de nuevo puede ser una perdida de tiempo. Saludos RE: ¿ Eliminar u ocultar los controles de su contenedor ? - Shordi - 03-05-2023 No puedo decirte que es mejor, tan sólo que como principio general, el tag de un objeto es algo que el objeto "porta" (en otros lenguajes se le llama "cargo") pero que no usa ni necesita para su uso. El almacenar el él un número cuyo sentido es mantener un orden (el índice) habla de por sí de que no se han de borrar esos objetos. Ocúltalos y reutilízalos. Es más rápido, incluyente, ecosostenible y, si me apuras, feminista. Saludos RE: ¿ Eliminar u ocultar los controles de su contenedor ? - cogier - 03-05-2023 Prueba este código: - Código: HPanel1 As HPanel RE: ¿ Eliminar u ocultar los controles de su contenedor ? - Shell - 03-05-2023 (03-05-2023, 17:17)Shordi escribió: Ocúltalos y reutilízalos. Es más rápido, incluyente, ecosostenible y, si me apuras, feminista. Al final los he reutilizados como me dijiste. Viva la informática reciclable. Podíamos crear un movimiento. Informáticos "re-verdes". Saludos |