Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2004
kes kes is offline
Miembro
 
Registrado: may 2003
Posts: 60
Poder: 22
kes Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 20-02-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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).
Responder Con Cita
  #3  
Antiguo 20-02-2004
kes kes is offline
Miembro
 
Registrado: may 2003
Posts: 60
Poder: 22
kes Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 22-02-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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;
Como te dije, nunca lo he hecho con datasets y podria no funcionar. Si no lo hace, lo que te quedaría es asignar "a mano" todas las propiedades que te interesen.

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
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 20:39:20.


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