![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Creación aplicación MDI
Hola a todos !!
Hasta ahora todas las aplicaciones que he hecho son SDI, pero ahora me gustaria preparar el entorno de programación que tengo para que soportara aplicaciones MDI. En las aplicaciones que tengo hechas siempre utilizo un DataModule, donde defino cada tabla con los componentes AdoQuery,Provider y ClientDataset. Después en los formularios me basta con incluir un Datasource que apunte al ClientDataset correspondiente y ya puedo acceder a los datos. El problema es que con aplicaciones MDI, cuando creo varios formularios del mismo tipo todos apuntan al mismo ClientDataset, lo que me impide que los formularios sean independientes. Esto podría solucionarse creando todos los componentes sobre el formulario en lugar de utilizar el DataModule, pero lo ideal seria que al crear el formulario, éste creara una copia de los tres componentes (AdoQuery,Provider y ClientDataset) sobre él mismo. De esta forma siempre serian componentes independientes pero a la hora de diseñar la aplicación bastaría con definirlos solo una vez sobre el Datamodule. Lo que no se es como crear una copia que sea independiente de estos tres componentes en tiempo de ejecución y que el DataSource del formulario apunte a la copia creada. ¿Alguna idea? No se si me expresado del todo bien. Gracias. |
#2
|
||||
|
||||
Hola.
Simplemente modifica en tiempo de ejecución la propiedad Dataset del Datasource en cuestión, y asígnalo al nuevo Dataset creado. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
|||
|
|||
El problema que tengo es que no se como crear los tres componentes en tiempo de ejecución. Teniendo en cuenta que han de tener las mismas propiedades que tienen en el DataModule, es decir, una copia de los componentes cambiando únicamente la relación que hay entre ellos.
|
#4
|
||||
|
||||
No lo he intentado con Datasets... pero al derivar de TPersistent, debiera funcionarte algo como:
Código:
Var NuevoAdoQuery : TAdoQuery; Begin NuevoAdoQuery := TAdoQuery.Create(Self); // o quien sea el owner NuevoAdoQuery.Assign(AdoQueryOriginal); etc, etc. End; Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
|
|
![]() |
|