Errores de programación (V)
Este error quizá no sea tal, sino un problema de interpretación del funcionamiento del compilador, de todos modos, al ser un comportamiento curioso, voy a hablar de él.
Supongamos el siguiente fragmento de código:
' OpcListMin es una variable global, declarada en un módulo separado, que el formulario
' ListFrm necesita para, al cargarse, mostrar una cosa u otra.
OpcListMin = 2
' Cerramos para asegurarnos, por las bravas, de que ese listado no está abierto. La variable
' MiFormList es global al formulario MDI de la aplicación.
MiFormList.Close()
' Y lo volvemos a abrir, tan inocentemente
MiFormList = New ListFrm
MiFormList.MdiParent = Me
MiFormList.Show()
Pues bien, si hacemos esto, el valor de OpcListMin se pierde, esto es, la variable se queda a cero sin hacer caso a la asignación previa al cierre de MiFormList. No teníamos ni idea de a qué se debía este comportamiento hasta que se me ocurrió, por ver qué pasaba, invertir dos líneas, o sea:
' Cerramos para asegurarnos, por las bravas, de que ese listado no está abierto. La variable
' MiFormList es global al formulario MDI de la aplicación.
MiFormList.Close()
' OpcListMin es una variable global, declarada en un módulo separado, que el formulario
' ListFrm necesita para, al cargarse, mostrar una cosa u otra.
OpcListMin = 2
' Y lo volvemos a abrir, ya no tan inocentemente
MiFormList = New ListFrm
MiFormList.MdiParent = Me
MiFormList.Show()
Hecho de la segunda forma sí funciona.
Desde un punto de vista lógico, carece de sentido. ¿Por qué una variable global a una aplicación, definida en un módulo aparte, se vuelve cero por cerrar un formulario localmente y volverlo a abrir?
Curioso, ¿no?
1 comentario:
¡¡Hola!!:
He vuelto. Por fin he publicado mi segundo cuento, que ya iba siendo hora de hacerlo jejeje.
Siento haber tardado tanto en dejarte un comentario, pero es que entre las prácticas y las clases, apenas me queda tiempo libre para escribir.
Hoy he podido terminar el cuento gracias a que hoy no he salido de casa, puesto que me están saliendo las muelas del juicio, y tengo la cara muy muy hinchada.
Espero que el nuevo cuento os guste. Está basado en el accidente de tráfico y la forma de relatarlo de mi novio.
Esperemos que dentro de poco tenga un tercer cuento, para compensaros la tardanza por el segundo. He tardado demasiado en escribirlo, y debo compensaroslo.
Muchos besos y gracias por tus visitas. Se agradecen muchísimo.
Publicar un comentario