[SOLUCIONADO] Duda sobre una clase - 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: [SOLUCIONADO] Duda sobre una clase (/thread-844.html) |
Duda sobre una clase - gambafeliz - 11-03-2022 Hola Tengo una clase llamada Cuadricula basada en GridView donde hago algunos cosas que no la hace GridView. En mi formulario tengo un GridView1 y lo cargo llamando a la siguiente Subrutina que la tengo en un módulo, os describo: Esta subrutina llamada CargarDatos(formulario As Form, SQL As String, Grid As GridView) invoca la clase Cuadricula así: Dim oCuadricula As New Cuadricula(formulario) Al final de esta subrutina pongo esto: ' Pinto el GridView oCuadricula.Cuadricula(Grid, resultado, mDB.obtenerColumnasCamposGridView("", resultado)) Pero cuando termina digamos que carga el GridView1 del formulario pero ahora he descubierto que también pinta un Cuadricula1 en el formulario sin quererlo yo pintar. Preguntas: Siguiendo esta manera de hacer mi carga de datos podria usar cuadricula sin pintarla por código en el formulario. En la actualidad tras cargar los datos del GridView1 del Formulario de esta forma que describo pongo al final de la subrutina CargarDatos esto: oCuadricula.Visible = False pero no se por que pero creo que esto es una gran chapuza por mi parte ya que sobrecargo supongo la memoria de objetos innecesarios. Alguien me ilumina el camino, Gracias. RE: Duda sobre una clase - Harpo - 12-03-2022 Buenos días, Un tanto confuso su mensaje. Por lo que entiendo lo que hace es:
Sin saber qué hace Cuadricula poco se me ocurre. Tampoco le veo sentido a crear un control nuevo que hereda de GridView cuya utilidad es cargar un GridView estándar y "pintarlo". Yo básicamente sigo dos caminos:
Un saludo, Harpo. RE: Duda sobre una clase - gambafeliz - 12-03-2022 Gracias Harpo Desearía pedirle consejo. Es exactamente como usted dice. Pero le cuento mi problema. En todos mis formularios tengo GridView1 y en una versión posterior de mi programa creo Cuadricula con el fin de que cargue el formulario con colores y anchuras según los campos, etc, etc. Que no viene en GridView Estandar pero que Cuadricula es como un camaleón que hace todo lo que no tiene GridView. Yo haría lo que usted dice y tiene razón pero tendría que sustituir GridView1 y su código por Cuadricula1 y ya no necesitaría CargarDatos tal como existe aunque si pero distinto, solo cargaría los datos sin crear Cuadricula solo pasar por parámetro y listo. Acabo de pensar en cuando creo cuadricula en el modulo destruir con delete() al final de CargarDatos. Digame entonces: Tengo dos opciones y usted me dice si es así: 1. Sustituir GridView1 y su código por Cuadricula1 y su código y en el módulo CargarDatos no crear Cuadricula sino cargar Cuadricula1. 2. Seguir así para no cambiar nada con el riesgo de que se caiga el castillo como naipe y poner al final de CargarDatos oCuadricula.delete() y destruyo el objeto tras cargar GridView1 Basicamente he llegado a esto por que tengo 30 gridview1 por todos mis formulario y todos apuntan a CargarDatos en el módulo y este se encarga de cargarlos y todo esta funcionando, pero me percaté que cometia un grave error por que cada vez que los cargaba, creaba un objeto llamado oCuadricula en los formulario de forma uno a uno y tantas veces como cargaba el GridView1, solo que no los veía por que estaba fuera de visualización por que las coordenadas x e y eran negativas. Ve usted el lío que he montado. Vamos como el niño que se mete en la nevera y se come todo el helado de la familia en un rincón. Ya vera como te vea tu madre RE: Duda sobre una clase - Harpo - 12-03-2022 Efectivamente creo que tiene dos opciones:
La segunda opción es más rápida e igualmente buena, solo necesita cambiar CargarDatos para que use las funciones del módulo en vez de las de Cuadricula. En su caso es la que usaría, lo de usar "oCuadricula.delete()" me chirría mucho. No sé si he conseguido aclararle algo, un saludo. Harpo. RE: Duda sobre una clase - gambafeliz - 12-03-2022 Muchísimo, gracias de las de verdad |