Ver Mensaje Individual
  #1  
Antiguo 30-09-2015
gaunmanuel gaunmanuel is offline
Miembro
 
Registrado: may 2015
Posts: 48
Reputación: 0
gaunmanuel Va por buen camino
Herencia de componentes

Que tal, tengo un pequeño dilema del cual espero explicarme y que me puedan dar un tip.
Datos Generales:
1. Trabajo con Delphi 7.0
2. Windows 8.1 64 Bits.

Pues bien, tengo un Sistema con el estilo de forma MDIForm, en la cual tengo un forma principal y el resto formas Child...
Todas las formas Child son heredadas de una clase llamada TfrmCatalogo, ésta clase es una forma en la cual tengo componentes que establecen un estilo a todas las formas Child, uno de los componentes principales y que se hereda a cada forma child, es el PageControl, el cual desde la forma principal (TfrmCatalogo) tiene creado 2 TabSheets, hasta aqui todo muy bien.
Como aclaración la clase TfrmCatalogo fue diseñada con la intención de que si se hace algún cambio visual pues simplemente se aplique a esta clase y en automático se aplique a todas las formas child heredadas...
Pues bien, mi dilema ahora se encuentra en que quiero cambiar el componente PageControl nativo, por otro componente PageControl de otra compañia, y Bueno lo que hago es cambiar en la clase TfrmCatalogo la clase del componente PageControl y posterior cambiar las declaraciones en el archivo dfm:
Código con la declaración actual:
Código Delphi [-]
type
  TfrmCatalogo = class(TForm)
    PageControl1: TPageControl;
    tabCaratula: TTabSheet;
    tabGeneral: TTabSheet;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Código con la nueva Declaración:
Código Delphi [-]
type
  TfrmCatalogo = class(TForm)
    PageControl1: TElPageControl;
    tabCaratula: TElTabSheet;
    tabGeneral: TElTabSheet;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Hasta aqui todo funciona muy bien, en automático las formas child heredadas de TfrmCatalogo se actualizan con el nuevo componente.
Sin embargo, en muchas formas Child se les creo un tabSheet independiente a los heredados, es precisamente donde tengo el problema, en estas formas Child la declaración de ese tabSheet creado desaparece en el archivo dfm y obviamente todos los componentes que pudiera haber tenido dicho tabSheet tambien desaparecen, aunque en la clase (archivo .pas) la declaración del TabSheet sigue ahi, pero al compilar me manda un mensaje que si quiero remover dicha declaración ya que no encuentra un enlace. Inclusive en el archivo .pas de la forma Child cambié la clase del tabSheet por la nueva clase TElTabSheet pero no resulto ya que al ver la forma como texto la declaración del objeto tabSheet desaparacio.
Que me sugieren? sera que tengo que cambiar primeramente en cada forma CHILD la clase del nuevo componente? o algo estoy haciendo incorrecto? o de plano estoy alucinando y lo que quiero hacer hasta fuera del lugar?

gracias.
saludos.
Responder Con Cita