Ver la Versión Completa : Multiples Ventanas en una Aplicacion
Nomad
18-05-2007, 20:38:51
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
Hola,
Puedes empezar por:
File -> New -> Other... -> Projects -> MDI Application
O, sencillamente, iniciar un nuevo proyecto:
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
Eso hice, pero entonces me abre automaticamente las ventanas, pero yo quiero que uno abra la ventana que desee y no automaticamentes...
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:
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
Y no hay forma de poder cerrar esa ventana una vez que esta abierta?
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
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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.