Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Multiples Ventanas en una Aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=43733)

Nomad 18-05-2007 20:38:51

Multiples Ventanas en una Aplicacion
 
Hola

Deseo tener una aplicacion y poder abrir varias ventanas dentro de la misma aplicacion y pasarme de una otra. Creo que es una aplicacion MDI o algo, en fin cualquier contribucion es bien recibida y se los agradezco de antemano...\

Saludos desde CR

dec 18-05-2007 20:50:42

Hola,

Puedes empezar por:

Código:

File -> New -> Other... -> Projects -> MDI Application
O, sencillamente, iniciar un nuevo proyecto:

Código:

File -> New -> Application
...y dando a la propiedad "FormStyle" del formulario principal el valor "fsMDIForm". Al resto de formularios (que añadas) a la aplicación cámbiales también la propiedad "FormStyle" a "fsMDIChild".

Nomad 18-05-2007 20:59:16

Pero...
 
Eso hice, pero entonces me abre automaticamente las ventanas, pero yo quiero que uno abra la ventana que desee y no automaticamentes...

dec 18-05-2007 21:02:50

Hola,

No puedes ocultar (Visible:=False) formularios "MDI", pero, puedes impedir que se creen cuando se crea la aplicación. Quiere decirse que en cuento se crea un formulario MDI este pasa a ser mostrado, empero, hasta que el formulario no se crea, evidentemente no se muestra.

Echa un vistazo en el archivo del proyecto "*.dpr" y probablemente veas algo como esto:

Código Delphi [-]
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  //Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

Pues bien, la línea que he comentado puedes y aun debes borrarla, de modo que no se cree el formulario de turno, y por tanto no se muestre.

Nomad 18-05-2007 21:39:04

continuacion...
 
Y no hay forma de poder cerrar esa ventana una vez que esta abierta?

dec 18-05-2007 21:46:54

Hola,

¿El formulario hijo? Claro que sí, hombre. Puedes usar su método "Close". En el evento "OnClose" correspondiente tienes que dar un valor al parámetro "Action" que se te pasa por referencia: "caFree", me parece, para "ocultar" el formulario.

PD. No puedes ocultar un formulario "MDI", así que con "caFree" lo liberas al cerrarse, de modo que tendrás que crearlo cuando vayas a mostrarlo de nuevo.

Nomad 18-05-2007 22:07:46

Listo! muchas gracias!

jcarteagaf 18-05-2007 22:12:28

Ventas hijo
 
Yo hago lo siguiene

if frmventanaHija = nil then
frmVentanaHija := TfrmVentanaHija.Create(Application);
frmVentanaHija.Show;

En el evento Onclose de la ventanaHija coloco:

Action := caFree;
frmVentanaHija := nil;

Espero que te ayude


La franja horaria es GMT +2. Ahora son las 00:16:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi