Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-07-2003
jpep jpep is offline
Miembro
 
Registrado: jul 2003
Ubicación: Benidorm
Posts: 14
Poder: 0
jpep Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 14-07-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 14-07-2003
Avatar de Investment
Investment Investment is offline
Miembro
 
Registrado: may 2003
Posts: 378
Poder: 21
Investment Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 20-07-2003
jpep jpep is offline
Miembro
 
Registrado: jul 2003
Ubicación: Benidorm
Posts: 14
Poder: 0
jpep Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 20-07-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por jpep
...¿no contendrá todos los formularios creados, aunque no sean de mi aplicación?.
No. Únicamente los de tu aplicación, visibles o no.
Responder Con Cita
  #6  
Antiguo 20-07-2003
jpep jpep is offline
Miembro
 
Registrado: jul 2003
Ubicación: Benidorm
Posts: 14
Poder: 0
jpep Va por buen camino
O.K. Gracias
Responder Con Cita
  #7  
Antiguo 20-07-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
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
Responder Con Cita
  #8  
Antiguo 21-07-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
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
Responder Con Cita
  #9  
Antiguo 22-07-2003
Ruben_Cu Ruben_Cu is offline
No confirmado
 
Registrado: oct 2003
Ubicación: Mariel, Cuba
Posts: 271
Poder: 0
Ruben_Cu Va por buen camino
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
Responder Con Cita
  #10  
Antiguo 23-07-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
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
Responder Con Cita
  #11  
Antiguo 26-07-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
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).
__________________
Guía de Estilo
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:54:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi