Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-09-2007
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Sí, sería una copia del otro. Y no olvides liberarlo al final: DSDinamic.Free
Responder Con Cita
  #2  
Antiguo 19-09-2007
pvizcay pvizcay is offline
Miembro
 
Registrado: jun 2006
Posts: 147
Poder: 21
pvizcay Va por buen camino
no se si no se entendió.. el código ese no funciona..
Responder Con Cita
  #3  
Antiguo 19-09-2007
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Pues asi no sabría qué decirte, ¿has probado con owner en lugar de self?:
Código:
DSDinamic := TMdoDataset.Create(owner);
Responder Con Cita
  #4  
Antiguo 19-09-2007
pvizcay pvizcay is offline
Miembro
 
Registrado: jun 2006
Posts: 147
Poder: 21
pvizcay Va por buen camino
si.. el problema no pasa por ahi, el método Assign es de la clase TPersistent pero la misma no define como se realiza la operación (y con razón, no puede saber como copiar clases que van a descender de ella), simplemente lanza una excepción que es de la q hablo en el primer post

en pocas palabras la clase dataset mdo no lo define, eso lo puse más como ejemplo...

yo lo que quiero es usar la información que esta en el .DFM para crear componentes de forma dinámica, sin tener que duplicar todo el módulo completo (y sin tener que asignar las propiedades a manopla) ahora se entiende mejor?
Responder Con Cita
  #5  
Antiguo 19-09-2007
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.676
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Entonces creo que lo que quieres es algo así:
Código:
procedure TForm1.bt1Click(Sender: TObject);
var
      Q2 : TIBDataSet;
begin
    try
        Q2 := TIBDataSet.Create(Owner);
        Q2 := Q1 ; // .Assign(Q1);
        ShowMessage(Q2.SelectSQL.Text);
    finally
        FreeAndNil(Q2);
    end;
end;
Pruébalo, te lo digo de memoria, no tengo un delphi aquí.



Edito: Ahora que lo pienso, esa solución no sirve, fallaría la segunda vez que lo asignaras porque al igualar Q2 a Q1, al hacer el FreeAndNil(Q2) también se lo estaría haciendo a Q1.
Mejor déjame que saque un poquito de tiempo mañana en el trabajo y lo miro.

Última edición por Casimiro Noteví fecha: 19-09-2007 a las 21:44:40.
Responder Con Cita
  #6  
Antiguo 19-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Podrías hacer uso de la RTTI...

Checa este artículo, ahí viene un projecto que tiene un procedimiento llamado CopyObject

http://www.blong.com/Conferences/Bor...RTTI/CB140.htm


Saludos...
Responder Con Cita
  #7  
Antiguo 20-09-2007
Avatar de axesys
axesys axesys is offline
Miembro
 
Registrado: ene 2007
Ubicación: Los Mochis Sinaloa
Posts: 208
Poder: 20
axesys Va por buen camino
Yo tengo una forma base con una funcion que me crea los datamodulos

Código Delphi [-]
 
interface
type
  TDataModuleClass = class of TDataModule;
  TfrmBase = class(TForm)
  protected
    function CrearDataModulo(sNombre: string): TDataModule;
  end;

implementation
 
function TfrmBase.CrearDataModulo(sNombre: string): TDataModule;
begin
  sNombre:= StringReplace(sNombre, 'frm', 'dm', []);
  Result:= TDataModuleClass(GetClass(sNombre)).Create(Self)
end;

Luego en la forma que ocupa crear el datamodulo por ejemplo un catalogo base tengo

Código Delphi [-]
 
interface
type
  TfrmCatalogo = class (TfrmBase)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    FCatalogo: TdmCatalogo;
  end;
 
implementation
 
procedure TfrmCatalogo.FormCreate(Sender: TObject);
begin
  inherited;
  FCatalogo:= CrearDataModulo(ClassName) as TdmCatalogo
end;
 
procedure TfrmCatalogo.FormDestroy(Sender: TObject);
begin
  inherited;
  FreeAndNil(FCatalogo)
end;

Ademas tengo un datamodulo base para los catalogos

Código Delphi [-]
 
type
  TdmCatalogo = class(TDataModule)
    dtsCatalogo: TIBDataSet;
    dsCatalogo: TDataSource;
  end;

Despues solo heredo un frmCatalogo y un dmCatalogo para cada catalogo que voy hacer y les pongo el mismo nombre por ejemplo frmCatalogoArticulos y dmCatalogoArticulos con eso ya se crean solos

Ademas pongo en initialization de cada uno que heredé que se registre su clase por ejemplo RegisterClass(TfrmCatalogoArticulos) y RegisterClass(TdmCatalogoArticulos)

Espero que te pueda servir saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Componentes Dinamicos (contenedores) JULIOCTORRESG Varios 7 22-11-2020 00:48:39
como crear componentes dinamicos sErgis .NET 3 06-06-2011 17:10:05
Problemas con componentes dinámicos mamaro OOP 2 14-10-2004 17:14:06
Destrucción de componentes dinámicos rafita OOP 5 16-04-2004 18:06:17
Crear Forms Dinamicos diegofhernando Varios 1 25-01-2004 02:26:19


La franja horaria es GMT +2. Ahora son las 14:56:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi