Ver Mensaje Individual
  #13  
Antiguo 03-01-2006
SMTZ SMTZ is offline
Miembro
 
Registrado: nov 2003
Posts: 225
Reputación: 21
SMTZ Va por buen camino
Post Vuelvo a explicarlo

Hola, creo que en los posts anteriores no me he explicado del todo bien, por eso vuelvo a explicar el problema que tengo desde el principio. Imaginemos dos unidades. La unidad 1 contiene un formulario que quiero activar desde la unidad 2.

Código:
UNIDAD1
=======

type
  TWinForm = class(System.Windows.Forms.Form)
  {$REGION 'Designer Managed Code'}
  strict private
    Components: System.ComponentModel.Container;
    procedure InitializeComponent;
  {$ENDREGION}
  strict protected
    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    procedure Dispose(Disposing: Boolean); override;
  private
    { Private Declarations }
  public
    constructor Create;
  end;
Código:
UNIDAD2
=======

...

uses unidad1; // Para que pueda llamar al TWinForm de la Unidad1.

...

Begin
//Imaginemos que pulso un botón y muestro la TWinForm de la unidad1

TWinForm.Create.Show;

end;

...


Begin

//Ahora imaginemos que ya tenemos el formulario creado pero quiero poner su propiedad enable a false.


TWinForm.Enable := False; // Esta línea de un error al compilar porque dice que la propiedad enable no está definida. La cosa iría como se especifica en la siguiente línea.

TWinForm.Create.Enable := False; // Pero esta línea no pone el formulario ya creado en enable, ya que volvemos a llamar a create para que se cree otro formulario y no se actua sobre el que ya está creado.

End;
La posibilidad que he encontrado para solucionar este problema es:

Código:
Unidad2
======

...

Var
   Form1 : TWinForm;

Begin

   Form1.Create.Show;
   Form1.Enable := True; // Esta vez, esta línea sí que se puede compilar y con esto quedaría el problema que planteo solucionado.

End;

...
Pero ahora imaginemos que el form sobre el que quiero actuar es el principal, el que se crea por defecto al arrancar la aplicación y no se llama a través de ninguna variable. No he encontrado ninguna solución para poder actuar sobre la propiedad Enable del formulario principal.


Un saludo.
Responder Con Cita