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

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 07-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.141
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Yo estoy como jmariano, que C++ me es bastante desconocido. Llevo desde que te contesté por vez primera tratando de hacer algo similar en Delphi, porque creo que no te sería complicada la traducción del código fuente a C++.

El caso es que no he conseguido lo que se proponía sino dando cierto rodeo que no sé hasta qué punto será necesario. He hecho varias pruebas, como te digo, y, en ninguna de ellas conseguía asignar un formulario a la propiedad de marras, salvo programáticamente, esto es, fuera del Inspector de objetos.

A lo último que he llegado ha sido a lo que a continuación expondré (el código fuente) y, de este modo, sí que he podido asignar un formulario a una propiedad de "mi componente" desde el Inspector de Objetos. Solo que lo que hago es asignar el formulario a una propiedad de una propiedad...

Me explicaré, se trata de dos clases: una de ellas contiene una propiedad a la cual puede asignársele un formulario. Esta misma clase es el tipo de una propiedad de "mi componente", de ahí que diga que he dado un rodeo que no sé hasta qué punto sería preciso dar, si supiera hacerse de otro modo.

En fin, aquí está el código fuente que digo que consigue al cabo hacer algo parecido a lo que se precisaba, si no es ya que todo ello sea deshechable porque no es exactamente lo que se pretendía realizar. El caso es que, como digo, al cabo puedo, mediante el Inspector de Objetos, asignar un formulario a una propiedad de "mi componente".

Como verás es código fuente de Delphi... espero que no tengas muchos problemas para traducirlo a código fuente de C++.

Código Delphi [-]
 unit UPruebas;
 
 interface
 
 uses
   Forms, Classes;
 
 type
   TMiForm = class(TPersistent)
   private
     FForm: TForm;
   public
     procedure Assign(Source: TPersistent); override;
   published
     property MiForm: TForm read FForm write FForm;
  end;
 
 type
   TMiComponente = class(TComponent)
   private
     FMiForm: TMiForm;
     procedure SetForm(Value: TMiForm);
   public
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
   published
     property MiForm: TMiForm read FMiForm write SetForm;
   end;
 
 procedure Register;
 
 implementation
 
 procedure Register;
 begin
   RegisterComponents('Samples', [TMiComponente]);
 end;
 
 { TMiComponente }
 
 constructor TMiComponente.Create(AOwner: TComponent);
 begin
   inherited Create(AOwner);
   FMiForm := TMiForm.Create;
 end;
 
 destructor TMiComponente.Destroy;
 begin
   FMiForm.Free;
   inherited;
 end;
 
 procedure TMiComponente.SetForm(Value: TMiForm);
 begin
   if Value <> FMiForm then
     FMiForm.Assign(Value);
 end;
 
 { TMiForm }
 
 procedure TMiForm.Assign(Source: TPersistent);
 begin
   inherited;
    if Source is TForm then
    begin
      FForm := TForm(Source);
    end;
    inherited Assign(Source);
 end;
 
 end.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
 


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


La franja horaria es GMT +2. Ahora son las 16:03:03.


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