Ver Mensaje Individual
  #1  
Antiguo 11-02-2008
Avatar de NeoAnderson
NeoAnderson NeoAnderson is offline
Miembro
 
Registrado: feb 2008
Posts: 17
Reputación: 0
NeoAnderson Va por buen camino
Question Cómo acceder a las propiedades de un "Parent"

Hola nuevamente, pues estoy de regreso con una nueva duda, me disculpo si es que este hilo ya está abierto, pero no pude encontrar informacion que me sirviera para resolver mi problema.

Tengo un Formulario principal: "TFMain"
Tengo un Formulario "TFImagen" que se creará en tiempo de ejecucion y se alojara en una nueva pestaña de un PageControl1 que está en "TFMain". Esto lo hago con el siguiente codigo:

Código Delphi [-]
Unit Main;
interface
uses
/*....*/ UImagen; //Es el unit del formulatio TFImagen

/*etc, etc*/

procedure TFMain.Abrir1Click(Sender: TObject);
var aForm:TFImagen;
     tabSheet: TTabSheet;     
begin

   //crea una nueva pestaña
   tabSheet := TTabSheet.Create(PageControl1) ;
   tabSheet.PageControl := PageControl1;

   //crear un nuevo form
   aForm := TFImagen.Create(tabSheet) ;
   aForm.Parent := tabSheet;
   aForm.Align := alClient;
   aForm.BorderStyle := bsNone;
   aForm.Visible := true;
   PageControl1.ActivePage := tabSheet;   
   
end;

y hasta ahi todo bien, puedo crear tantos Formularios "TFImagen" como yo quiera y puedo acceder a las propiedades de cualquier "TFImagen" desde "TFMain" con el siguiente codigo:

Código Delphi [-]
(PageControl1.ActivePage.Controls[0] as TFImagen).PropiedadX;

Pero el problema es cuando desde un "TFImagen" quiero acceder a las propiedades de "TFMain". y es que no puedo poner en el unit del formulario dinamico uses Main (que es el unit de TFMain) pk me marca un error por referencia circular, entonces como puedo acceder a las propiedades de mi formulario principal??

Dado que el padre de TFImagen es tabsheet, me imagino que primero debo acceder a tabsheet y luego al padre de tabsheet y asi hasta llegar al TFMain que es el formulario principal, pero pues no tengo ni idea de como hacer esto.

Espero puedan ayudarme nuevamente, y gracias de antemano.
Responder Con Cita