PDA

Ver la Versión Completa : Multiple ejecucion MDIChild


brandolin
12-02-2004, 21:37:37
Tengo una aplicacion que usa ventanas MDIChild, pero quiero que algunas se ejecuten una sola vez. Es decir que si ya se encuentra abierta se restaure la misma o pase a primer plano.

Alguien sabe como hacerlo?

Gracias.

delphi.com.ar
12-02-2004, 21:45:50
Si cuando la creas la asignas a la variable que Delphi te crea por defecto (Form1: TForm1;), solo tendrías que preguntar si no está asignada (if Assigned(Form1)) y encargarte de asignarle Nil cuando se destruya el form.
Otra forma muy común, para quienes no usamos esta varible, es desactivar el menú / botón que crea el form una vez creado, y volverlo a activar cuando este se destruye.

Saludos!

roman
12-02-2004, 22:02:43
Complementando lo que te dice delphi.com.ar, en lugar de la variable que se crea por defecto puedes usar una variable dentro del formulario:


TMDIForm = class(TForm)
private
FMDIChildUnico: TMDIChildUnico;
end;


Si sólo vasa usar una instancia entonces de hecho no tendrías que preocuparte por poner a nil la variable cuando se destruya ya que se destruirá cuando termina la aplicación.

// Saludos

delphi.com.ar
12-02-2004, 22:07:34
Me olvidaba de una más, que también he visto que es muy común: Puedes fijarte si no existe en Screen.Forms[] una instancia de la clase que desas crear.

Saludos!