Encontrar un formulario en la aplicacion dado un string
Hola, necesito alguna forma que, dado un string con el nombre de un formulario, lo encuentre en mi aplicación. El problema es que el formulario puede estar o no creado ya. Un saludo, mil gracias.
|
Hola,
Tal vez no sea preciso que uses una cadena, sino que, si utilizas una variable para el formulario en cuestión, por ejemplo, "form2", puedes codificar algo como:
|
También puedes usar un TObjectList, cuandos creas un formulario lo añades, cuando lo destruyes lo borras.
Para buscarlo, sólo debes recorrer el ObjectList y ver de los que hay creados cual se llama igual que el tuyo. |
Otra forma más:
El nombre del Formulario no es seguro, si creas tres ventanas de tipo TForm1, se llamarán Form1, Form1_1, Form1_2 y al tiempo de buscar se complican las cosas, es mejor usar su tipo o usar fábrica de clases (busca en el foro) pero ya se empieza a complicar las cosas. Saludos |
Gracias a todos, buscando y buscando he encontrado una forma que es registrando las clases en el formulario principal y cuando quiero crear el formulario llamo a la función GetClass( string );
Un saludo! |
Cita:
Lo que no me queda claro es qué tiene que ver eso con encontrar un formulario que puede estar creado o no a partir de un string. ¿Puedes explicarte? :confused::confused::confused: |
Pues mira, lo que necesitaba era crear un formulario a partir de el nombre de su clase, y lo he hecho de la siguiente manera:
Si te fijas, al GetClass le paso como parámetro un string, que es el nombre de la clase del formulario y ya básicamente queda crearlo. Espero resolver tus dudas :D |
Cita:
Cita:
En principio crear uno es más sencillo, que buscar uno ya creado con esa clase. Un saludo y gracias por postear el código. |
:D Imagino que tuve que liaros mucho con mi código, pido disculpas. Intentaré explicarme mejor en siguientes ocasiones. De nuevo gracias a todos por vuestra ayuda y un gran saludo.
|
La franja horaria es GMT +2. Ahora son las 08:54:26. |
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