![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
lista de formularios
Buenaaas:
Pues eso, que lo que necesito es una lista de los formularios de la aplicación. He mirado en el objeto Application, ya que es el el que los construye para ver si tenia una lista, pero no he encontrado nada. Podria recorrer la lista de componentes de application y ver si es un form, pero me parece un poco "cochino", sobre todo si tengo muchos controles. No se como almacena delphi los forms, pero a mi me parece que lo mas logico es en un TList (lo que me vendria de categoria), pero ¿donde esta este?. ¿Hay alguna forma más "elegante" que la que digo en el segundo parrafo? Gracias por vuestra ayuda. UN SALUDO |
#2
|
|||
|
|||
Hola:
Mira las propiedades Forms y FormCount, así como CustomForms y CustomFormCount del objeto global Screen. Ahí está la lista que andas buscando. Un saludo,
__________________
Guía de Estilo |
#3
|
||||
|
||||
En la pestaña Forms de la opcion Proyect/Options también tienes una lista con los formularios que usa tú aplicación.
__________________
Saludos, Peter Investment |
#4
|
|||
|
|||
Muchas gracias por vuestras respuestas.
Andres: efectivamente es eso lo que estaba buscando. Sin embargo tengo una duda, ¿como es que esa lista está en el objeto screen? si está en este objeto tan global, ¿no contendrá todos los formularios creados, aunque no sean de mi aplicación?. Un saludo |
#5
|
||||
|
||||
Cita:
|
#6
|
|||
|
|||
O.K. Gracias
|
#7
|
|||
|
|||
A mí también me extrañó en su día que esta lista de formularios fuera mantenida por un objeto como Screen, que más bien parece destinado a informar de ciertas variables de entorno referentes a la pantalla.
Vería más lógico que estuvieran estas listas en otro objeto global como es Application. Supongo que Borland tendrá sus razones. Como ya te aclaró Román, sólo mantiene una lista con los formularios de la aplicación.
__________________
Guía de Estilo |
#8
|
||||
|
||||
Que tal.
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? Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#9
|
|||
|
|||
Hola muchachos, solo un señalamiento.
El uso del TScreen no tiene en cuenta las form disponibles a menos que esten creadas, solo cuenta las autocreadas. ¿Como podrían listarse todas las que contiene el proyecto? así como aparecen en un listbox cuando pinchas en el botón de form del menú de Delphi Estuve revisando la ayuda y hasta ahora no he encontrado nada al respecto. Seguimos buscando, buen tema. Saludos |
#10
|
||||
|
||||
Que tal.
El objeto Screen tiene una lista de todas las formas creadas, ya sea autocreadas, o creadas mas adelánte por código. Las formas disponibles... eso es otro asunto y no hay ningún lugar donde podas encontrarlas, salvo que vos crees tu propia lista y un mecanismo de registro de clases en tus formas. Quizas te ayude a aclarar la idea este hilo Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#11
|
|||
|
|||
Hola:
Jachguate escribió: Cita:
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).
__________________
Guía de Estilo |
![]() |
|
|
![]() |
|