Ver Mensaje Individual
  #16  
Antiguo 07-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Solo una observación.

Cita:
Empezado por D&W Ver Mensaje
aquí va la modificación, espero sirva.
Código Delphi [-]
Procedure TMainForm.CreateOrRestoreForm(aForm : TForm, aFormClass : TFormClass);
  if not Assigned(aForm) Then begin
    aForm := aFormClass.Create(Application);
    aForm.Show;
  end
  else begin
    if aForm.WindowState = wsMinimized then  
        aForm.WindowState := wsNormal;
    aForm.BringToFront;
  end;
end;
Con esta rutina propuesta, ninguna asignación ocurre sobre la variable de formulario que se pasa como parámetro.

Si se hacen dos llamadas consecutivas, por ejemplo:

Código Delphi [-]
var
  Form1: TForm1;
begin
  MainForm.CreateOrRestoreForm(Form1, TForm1);
  MainForm.CreateOrRestoreForm(Form1, TForm1);
end;

Se tendrá dos instancias de TForm1.

Hasta luego.



Sugerencia: Si querés crear una rutina que asigne el valor de esa variable, date una vuelta por el código fuente del método CreateForm de la clase TApplication.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate

Última edición por jachguate fecha: 07-01-2008 a las 17:57:30. Razón: Añadir sugerencia
Responder Con Cita