Hola:
Jachguate escribió:
Cita:
Pues a simple vista parece que el objeto indicado es el Application, sin embargo, no en todos los contextos es aplicable y muchas veces Application no es el owner de las formas. No se si Screen será el idoneo, pero en lo personal me parece mas adecuado que application.
Parece tema de un buen debate, no?
|
Application no siempre será el Owner de todas las formas, pero mucho menos lo es Screen. El contexto en que ambas variables globales se encuentran es el mismo, de hecho ambas son inicializadas y detruidas en la misma unit
Controls, de modo que basta con que nuestro programa lleve un control (o un solo formulario) para que empiecen a rodar. Si hablamos de un ejecutable sin Forms, entonces de nada nos interesa acceder a esa lista.
Creo que el ponerlo en la variable Screen es algo arbitrario, sencillamente en el constructor del TForm se hace un Screen.AddForm (Self), como se hubiera podido hacer Application.AddForm (Self).
Lo de tener una lista con los formularios disponibles, me uno a la solución propuesta, bastaría registrar la clase de cada formulario en una lista (en la sección
Initialization de la unit del Form), y sería interesante disponer de una factoría de clases que creara el formulario apetecido suministrándole un nombre (el de la clase u otro más descriptivo).