PDA

Ver la Versión Completa : Mostrar un formulario existente


jafera
21-02-2013, 18:10:23
Hola a todos.

Tengo una pequeña duda acerca de como hacer una presentación de un formulario que a la vez llama a otro, explico:

Formulario Principal MDI llamo a formulario secundario MDI Child con el siguiente código:


procedure TF_Inici.ToolButton5Click(Sender: TObject);
begin
if not Assigned(F_Girona) then
begin
F_Girona := TF_Girona.Create(self);
end
else
begin
F_Girona.BringToFront;
end;
end;


Enseña el form correctamente y si existe y está detrás lo tre al frente, hasta aquí sin problema.

Desde este form llamo a otro:


procedure TF_Girona.CrearRebut1Click(Sender: TObject);
begin
if not Assigned(F_Rebut) then
begin
F_Rebut := TF_Rebut.Create(Self);
end
else
begin
F_Rebut.BringToFront;
end;
end;


Esto también funciona correcto, pero si llamo otra vez al primer formulario, este viene al frente y como tiene el segundo que cuelga de el pues lo deja atrás.

He probado con poner el formulario contenedor como Normal y tampoco me hace lo que me gustaría que hiciera. Me gustaria que el formulario F_Girona quedara fijo por más que lo llamara dos veces y siempre quedara atrás, como un modal o algo así.

Alguien tiene una sugerencia?

Gracias a todos por adelantado

Josep

newtron
21-02-2013, 20:34:00
Hola.

¿No te vale hacer un SendToBack al formulario que quieres mantener detrás?

Saludos

jafera
21-02-2013, 21:43:38
Gracias newtron.

Si podria haer el SendToBack pero me gustaria que al crear el form F_Girona, este se quedara fijo hasta que yo lo cerrase.

Saludos

Josep

newtron
22-02-2013, 10:07:16
Hola de nuevo.

Yo uso formularios normales y tuve esa problemática en su día, no sé si la solución que al final me ayudaron a darle servirá para formularios MDIChild pero igual te orienta. Aquí (http://www.clubdelphi.com/foros/showthread.php?t=76372&highlight=formulario+frente) tienes el hilo por si le quieres echar un vistazo, al final usé una solución sugerida por el compañero Escafandra, un maestro de la api.

Saludos