![]() |
Llamados a objetos entre formularios
Saludos a todos:
Tengo el siguiente caso: Tengo un Formulario1 que al presionar determinado botón llama a un Formulario2. A su vez, el Formulario2 llama a objetos (en particular TSimpleDataSet) del Formulario1, algo como Formulario1.Query1.Dataset ... etc. El tema es que el Formulario2 puede ser "reutilizado" por muchos formularios que lo llamen... la pregunta es ¿cómo puedo hacer para que Formulario2 haga referencia a los objetos del formulario que lo llama? Los formularios que hacen el llamado en escencia tienen los mismos compenentes TSimpleDataSet. La idea es que en el Formulario2 se pueda hacer algo como: FormularioBase.Query1.DataSet... donde FormularioBase puede ser cualquier formulario. No se si me hago entender lo suficiente. De antemano gracias por la colaboración. |
Hola,
En mi opinión, tienes un problema de diseño. Formulario2 debería ser totalmente independiente de cualquier otro formulario. Si dicho formulario debe manejar los datos de otros formularios, deja que esos otros formularios le pasen los datos por medio de propiedades. Por ejemplo, Formulario2 podría tener una propiedad pública DataSet:
Si otro formulario necesita usarlo, haría algo como:
Y Formulario2 trabajaría entonces con la variable FDataSet, y no dependería de quién lo llamó. // Saludos |
Hola roman. Gracias por la respuesta. Estamos de acuerdo es un problema de diseño... la inquietud surgió porque el Formulario2 tiene muchos DataSet y existen varias copias de Formulario2 (digamos Formulario3, etc.) para cada formulario principal que lo llama. Definitivamente es un problema para el mantenimiento por lo que, ahora que estoy a cargo de la aplicación quería simplificar las cosas. La solución que tengo en mente es utilizar DataModules para evitar que los DataSet se asocien a un formulario en particular... la verdad quería evitar eso porque son muchísimos y debo organizar los DataSource de otros tantos componentes... pero bueno... será mejor que vaya empezando...
|
:DTambién podrías crear una variable global que indique de que formulario fue llamado e formulario 2 por ejemplo.
Eso es para llamarlo ahí le especifica si es del 1 y así sucesivamente le vas agregando una identificación a cada uno y en el form2 bastaría con ver con la variable form_llama cual lo llamo |
La franja horaria es GMT +2. Ahora son las 09:25:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi