FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Como abrir un form sin tenerlo en el uses?
Buenas, la idea es abrir desde un form1, un form2 y que este abriera un form3 pero sin tenerlo declarado en el uses.
Por supuesto tampoco están declarados como abiertos en el proyecto, si no que se irían abriendo conforme se fueran necesitando y luego cerrándose. Gracias de antemano. Saludos |
#2
|
||||
|
||||
Hola.
¿Sin tenerlo en el uses? Creo que no se puede. La única opción que se me ocurre es tenerlo en una DLL externa. Saludos. P.D. Por qué no quieres tenerlo en el uses? Es pura curiosidad.
__________________
http://www.gestionportable.com |
#3
|
||||
|
||||
Y porque quieres hacer eso?
__________________
El malabarista. |
#4
|
|||
|
|||
Porque he creado un formulario de filtros de registros común a cualquier módulo.
Su pantalla es esta imagen que adjunto form.jpg Como veis al lado del concepto CAMPO (donde cambio el campo a elegir que lo he pasado en un TField), asociaría a cierto campo elegido el que fuera visible el bitBtn que hay al lado para que abriera un form que correspondería con otro módulo del que seleccionaría el campo id del registro que hubiera seleccionado, para así pasarlo al edit CONCEPTO. Pero claro este módulo, ya es de por si llamado por ejemplo desde el form1. Form2 es el que os he mostrado y ahora si estuviera visible el bitBtn llamaría a otro form3, pero que podría ser diferente dependiendo de que tuviera que ir por ejemplo al mentenimiento de clientes, proveedores, articulos, etc. Pero claro como quiero que este form2 sea genérico para diferentes proyectos, no quiero tener en el uses los TForm de cada proyecto. Si no que quiero crearlos en tiempo real (aunque ya se crearon en tiempo de diseño), llamarlos y después cerrarlos. Bueno esa es la idea. Agradecería cualquier tipo de ayuda. Saludos |
#5
|
|||
|
|||
A ver si te he entendido bien y si me explico:
Si a tu form2 le pasas como parametro el form3 y realmente el form2 no necesita saber nada del interior del form3 y solo quieres abrilo puedes pasarle como parametro al metodo que utilices del form2 un tform. Asi en el uses del form1 deberias tener el form2 y el form3 pero al form2 del pasarias el form3 como parametro. Si en el form2 no necesitas hacer nada que no se pueda hacer con un tform no es necesario que lo añadas al uses. Algo asi:
Última edición por engranaje fecha: 11-11-2014 a las 15:21:05. Razón: añadir ejemplo |
#6
|
||||
|
||||
Cita:
O DLL's, como han comentado.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
||||
|
||||
Si entiendo lo que quieres, tienes un form de busqueda que quieres que sea generico. Lo unico que varia es el campo que buscas.
Seria el mismo caso que un diagolo como el MessageBox. Asi que no hay que hacer un form por cada campo, solo pasar los params a ese form, y crearle una funcion como:
__________________
El malabarista. |
#8
|
||||
|
||||
Hola SocGer,
Necesita incluir el uses para poder usarlo en cualquier otro formulario, si no lo incluyes no podrá utilizarlo ni ese ni ninguno, si lo que te preocupa es que cuando vayas a reutilizar el formulario genérico en otro Form se quede el anterior, eso no te tiene que preocupar ya que cuando destruyes el Form también se destruye lo de mas. También te digo que un formulario lo puedes crear tantas veces como quieres, puedes crear un TForm cientos de veces dentro de un procedimiento o función, solo hay que cambiar el nombre de la variable. ambos representa al TFiltroForm pero el contenido de cada uno es distinto. buscas esto o me he perdido yo Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. |
#9
|
|||
|
|||
Si yo entendí bien, la idea es un form genérico que se pueda utilizar desde cualquier proyecto y que dependiendo de desde donde se muestre tendrá botones que muestren distintos forms. Es decir si el formulario tiene tres botones, uno mostrar detalle del cliente,otro mostrar facturas, otro mostrar pedidos y se va a utilizar desde el proyecto A y desde el proyecto B se quiere que según desde que proyecto se llame se muestre los formularios de detalle de cliente, facturas y pedidos de ese proyecto en cuestión. Lo que no se quiere es añadir nada exclusivo de un proyecto a un form genérico, por eso quiere poder hacerlo sin añadir al uses los forms.
Tal y como yo lo veo es una situación en la que se puede utilizar el polimorfismo. Si en el form genérico se declaran objetos de un tipo antepasado común a todos los forms que se puedan mostrar desde el form genérico y cuando se llama al form genérico quien lo llama le pasa los forms del proyecto casteados al tipo de form antepasado como parametros, desde el form genérico podrán llamarse a todos los métodos del form declarados en el antepasado, entre ellos el show y el showmodal etc. El problema que esto plantea si es la creación de los forms, deben crearse en el proyecto y pasarse como parámetros instancias ya creadas de los tipos de forms propios del proyecto. Dentro del formulario genérico no podrán crearse aunque si destruirse. |
#10
|
|||
|
|||
Chicos, muchas gracias. Ahora es momento de hacer pruebas.
Muy buen aporte y participación. Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como evito abrir 2 veces el mismo form? | daragor | Lazarus, FreePascal, Kylix, etc. | 13 | 14-08-2016 09:37:07 |
Como puedo abrir un form en un PageControl | marcoev | OOP | 7 | 05-09-2008 18:41:38 |
Abrir tablas de Firebird sin tenerlo instalado | David | Conexión con bases de datos | 3 | 23-05-2006 17:41:54 |
Abrir un Form tantas veces como desee | jorodgar | Servers | 3 | 20-04-2005 09:07:43 |
Cómo utilizar el BDE sin tenerlo instalado? | tupez | Conexión con bases de datos | 3 | 24-08-2003 21:34:02 |
|